I agree and it is good that you pointed this out.
Anyway, CFM has nothing to do with spring modeling. It just happens that you can use it for this since you weaken the constraints. I lately found a good explanation of CFM in some papers of Claude Larcousiere. Maybe you find it useful. Basically a constrained mechanical system looks like this:
dx/dt = v
dv/dt = M^-1 * ( f_ext + f_c ) // and f_c = JT * lambda
C(x) = 0
You have three unknowns (dx/dt, dv/dt and lambda) and three equations, but you cannot relate them. This is why we solve on the velocity or acceleration level. Sadly this is not equivalent anymore with the original definition above since we *don't* consider the original constraint manifold anymore but its tangent space. This leads to the drift problems and is why we need stabilization.
It is a well know fact that constraint forces have (theoretically) infinite stiff potentials U = 0.5 * k * C(x)^2. If k = inf this can potentially only have a finite solution if C(x) = 0 (0*inf is undefined but can be finite). I now define k = 1 / eps and let eps -> 0.
f_c = -dU/dx = -1/eps * JT * C(x) = JT * lambda -> eps * lambda + C(x) = 0
Formally nothing has changes, but lambda can now be eliminated from the system. If e -> 0 nothing changes to the original formulation. I am no expert in this, but I think this goes into the realm of index reduction of DAE. If you are interested in this I recommend looking into the papers below. Claude is really the lord commander of this stuff:
http://www.cs.umu.se/kurser/5DV058/VT09 ... ure12a.pdf
http://www.cs.umu.se/kurser/5DV058/VT09 ... ure12b.pdf
http://www.cs.umu.se/kurser/5DV058/VT09 ... knotes.pdf
Starting from this formulation you can easily derive many steppers easily. (E.g. ODE, Box2D and Spook)
HTH,
-Dirk