Ну так примерно оно и происходит. Табличка невидимая и имеет доступ только по ссылке с сишной стороны (или если сишка её вернёт), живёт пока не будет совершён lua_unref.
Меня на эту тему успело выморозить то, что если заменить таблицу, например, package — луа всё равно будет лезть в оригинал, потому что там такой же доступ по ссылке.
Ну так примерно оно и происходит. Табличка невидимая и имеет доступ только по ссылке с сишной стороны (или если сишка её вернёт), живёт пока не будет совершён lua_unref.
Ну вообще к регистру виртуальной машины луёвой можно получить доступ ещё и через debug.getregistry(), так что не такая уж она и невидимая