Но если пользователь норм и знает как работает луа — он сам себе закеширует всё что ему нужно. Это не сакральная практика, это норма, так делают все пользователи во всех скриптах, кешируют переменные для ускорения доступа к ним. Любые попытки сделать оптимизации за пользователя — метание бисера перед свиньями. Пусть разбирается, это его работа. Ты сделал апи, которое МОЖНО сделать быстрым? Вот, прекрасно, пусть пользователь трахается с тем, как именно это надо делать быстрым, изучает языки, среду и всё остальное. Если он на это не способен — весь его код по умолчанию тормозное говно, и нечего пытаться его оптимизировать за него, ты не мамка и не нянька, и жопу ему не подтираешь.
Вкратце: разграничивай ответственность.