Flexibility doesn't do anything to a model that you can't do in the model itself. Essentially you are creating a second copy of the model (hidden family table instance) with some dimension or parameter changed. Can you open the model by itself and make the same change to it that you are attempting to make with the flexible varied item? If not, then flexing it isn't going to work.
With a spring, if you want to simulate what the spring would look like in the compressed state, then the pitch must necessarily change. Instead of using a fixed pitch for the two sections, you need to use a pitch that is based of the current length of the spring. That way when the spring is shortened (compressed), the pitch will adjust accordingly to simulate compression.
I typically model springs with two dimensions. One dimension controls the actual geometry (compressed length) and a second dimension simply controls a construction line representing the free length. The free length drives the coil count. The compressed length drives the pitch, calculated force, and visible geometry. The only time the compressed length is set different than the free length is when it's varied via flexibility.
Make sense?