I feel as if the same happens here, with my animations. Because I work with a screen-based (flat) depiction of a three dimensional space, and on top of that I deal with two sets of motion: human movement through the space, and the movement of the space itself..
The way I was applying the structural shifts to my animations before, was to keyframe the shift in position every one or two seconds for all the layers in the relevant 1 or 2 seconds.
This resulted in the positioning of layers arriving at one point where the keyframes were and giving the 'ribbon result', which was rather annoying and distracting
I then came with a new method where I apply the shift to every new frame where is begins, so rather than moving from an already established point towards a keyframe that's shifted (in the future so to say), it shifts at the spot, moving instead to an already established point later in the animation. This gives a more smooth motion of all the layers together, and so works better visually, but also results in a much faster shift of the elements, and so only really works in reduced frame rate; the motion applied of 1 pixel per frame using the previous method was comparable to 1pixel per 5 frames with this technique. Another problem here is that, because the layers are only shifted at the present point, and move towards a pre-set final point (unlike previous way where the keyframes WERE placed at a future point in timeline), the closed they get to that final point the more obviously they steer towards it, even if the shift has moved them beyond that...