> Current behavior of "and" and "or" operators is equivalent to following Lua-like functions.
The behaviour is documented in section 3.4.5, and the essential part of it is the "short-circuit evaluation; that is, the second operand is evaluated only if necessary". Your explanation is far more complicated than that and is technically incomplete and/or inconsistent anyway.