Это просто факт. Так реализован интерпретатор Луа.
Для локальных переменных присваивание идет слева направо, для глобальных - справа налево.
Как сказал сам Роберто Иерузалимски:
"Evaluation order and assignment order are both explicitly undefined."
То есть, порядок вычисления и присваивания спецификацией языка не определен, и может быть любым теоретически.
Поэтому полагаться на него нельзя. Он может меняться между различными реализациями интерпретатора.
Небольшое исследование на тему можно полистать тут: http://lua-users.org/lists/lua-l/2006-06/msg00376.html