На самом деле, я не уверен, как это реализовано, но я думаю, что это может быть своего рода объединение, и в этом случае запись в одно и чтение из другого не гарантируется.
РЕДАКТИРОВАТЬ: Приведенный выше комментарий относится к объединениям в целом (C / C ++), однако случай в GLSL может быть другим.Ссылка: http://www.opengl.org/wiki/GLSL_Types#Swizzling гласит:
"Вы можете использовать xyzw, rgba (для цветов) или stpq (для координат текстуры). Эти три набора не имеют фактической разницы; они простосинтаксический сахар. "
Так что, как упоминалось в комментарии @tito, это всего лишь синтетический сахар, и его можно смешивать.(хотя не смешанный в одном вызове, например, xyga недопустим)