[This has gotten lots of discussion on this list in the past.]
Such behavior is consistent with the treatment of multiple-values in
function argument lists -- and in the latter case it's important for
robustness (of user programs, not Lua itself): functions in Lua can
return varying numbers of values (and it's not uncommon for functions
to return "extra" values that are often ignored), and whereas extra
return values at the end can be safely ignored, and so are basically
harmless, extra unexpected return values in the _middle_ are much more
likely to cause problems.
I see. Thanks for the explanation!