не уверен что обкладывание интерпритатора кучей костылей для "ограничений" было проще, чем взять луа с байткодом и перепилить байткод под "спецификации" vcpu и тд
Хотя в одном учебнике по C++ я видел как раз детально разобранные примеры на эту тему — создание виртуальной машины и компилятора к ней. Так что это этот гордиев узел разрубить можно.