On the path to full GLES 3.0 support, here is a step to the goal.
Given the way varying values are stored in memory, we need to make sure that the values are not packed when used for transform feedback. That also means we need to copy any non-aligned array/struct member used for xfb.
In a similar fashion, some builtin variables need to be copied when used for transform feedback because their value is modified by a subsequent lowering pass. For example,
gl_PointSize is clamped. However, the xfb value should still be the unclamped one.