I have a mesh with two shape keys (Basis and Key). I keyframed the value of Key from 0 to 1 and back to 0, and added a cyclic modifier to its f-curve, so that the mesh continuously "pulses" between Basis and Key. Then I add keyframes to Key's Range Max, to control how much the Key shape influences the mesh at different times.
When playing the animation in the 3d Viewport or rendering a still, everything behave as expected, but when rendering the animation, the keyframed Range Max is discarded. If I start rendering whilst the playhead is on a frame where Range Max = 1, it stays at 1 for the whole animation and it stays at 0 if I start rendering from a frame where Range Max = 0 (so in this case doesn't animate the shapekey at all).
I've search to see if it's a known bug and didn't find anything. Also saw that cyclic dependencies could be a problem but I don't think that's what's happening here.
Here's a simple test file to illustrate. Compare playing in Viewport, with rendering from frame 1 to 100, with rendering from frame 50 to 100.
Edit: looks like a bug so I filed a report here