Supposing that you do it for some practical reason rather than the simple pleasure of hacking, if a simple solution works, there's no reason to pick a more complex one.
> Actually, if you plan to write a translator that converges toward full Lua
> support, some architectural choices made by Vlad would be seriouslythat would be a really amazing project, i guess it would amount to a
> unoptimal, although they made sense in his case.
A more interesting approach would be a gracefully degrading one: as your program start to introduce usage of trickier primitives, you "degrade" to more faithful but less readable translation schemes. Ideally, you should be able to contain such degradations within limited parts of a program, so that, for instance, using a metatable in one bit of a program doesn't force to use special function encodings metamethods in the whole rest of that program. As an extreme, coroutines might have to be encoded through CPS transformation!
That would involve non-modular program analysis, the design of several levels of translation which are reasonnably interoperable, some clever propagation algorithms... That would be amazing indeed :)