Это да. Согласен.
В Lua с ее областями видимости наколоться раз плюнуть.
Например забыл указать что переменная локальная в функции и все... приехали.
Мне вообще сначала умолчательная глобальность переменных казалась ересью.
Т.е. здравый смысл подсказывает, что неявно объявленная переменная должна быть локальной для функции. Но в Lua локальность нужно явно указывать...
Вроде логичнее было бы явно наоборот глобальность указывать, но потом я понял что в Lua сделали упор на удобство использования замыканий.
И оно вроде даже нормально если мыслить замыканиями. Но один хрен ощущается изъян в дизайне языка.