Look at this:
f[k_] := (x /. Solve[6x^2 == k(3x^2 + 3x + 1), x][])
This is just giving f the value of the second solution to the equation.
OUT: ''some formatted output for the function f''
Make a new function
g[k_]:= ''copy the output of f[k] here''
IN: f //N
IN: g //N
See, what is happening is that g is giving the values of the 1st solution to the Solve output, instead of the 2nd as it should be!
I'm not looking for work-arounds for this, as I have already diagnosed the problem and the solution is obvious. I just wanted to point out that mathematica is doing something strange.