Так же lua (как и другие скриптовые языки) можно встраивать в собственное приложение.
Оба варианта имеют место быть, вопрос лишь в том кто главный и кто рулит тут всем.
При использовании подхода из ответа
shurshur главный - интерпретатор скриптового языка (и твое приложение, написанное на этом языке), а твоя С/С++ библиотека - один из модулей используемых скриптом.
При встраивании главное твое приложение, которое может вызывать скрипты для каких-то своих целей. Скрипты могут использовать объекты твоей программы, для которых ты разрешил это действие.
Выбор реализации во многом зависит от того, что хочется получить в итоге.