I like that I don't HAVE to put definitions higher up in the code
Higher up?
Instead of:
x = 0
...use...
local x = 0
Oh noes!!
It makes things harder to write and forces you to have to make difficult decisions about what is defined where, which is just one more headache for me. I like that I can refer to variables and functions that are further down in the code beyond where they are called.
I don't think you understand what strict does. Have you actually tried turning it on?