When an entity is moved by a piston the movement ignores other moving blocks collision boxes.
The reason that moving blocks ignore the collision boxes of other moving blocks is that entities don't get stuck when in-between two moving blocks, I think. (I might have suggested this myself on an older bug post, but I didn't see this issue coming )
Either way moving blocks could just ignore other moving blocks that move in the same direction to make this less buggy, but still keep the advantages. However this would not fix certain 320 m/s transportation systems, but it would fix the negative side effects that one might accidentally run into (that I can think of).