So basically I would write functions into the C++ classes (components) and just make lua bindings for them then call them in lua? that sounds.... genius.
That is exactly what I do in my game engine. Once the engine is compiled, you can use Lua to create everything in game without ever having to recompile again. Menus, Logic, AI, serialization, synchronization, everything.
Here is a link to my engine's source in case you want to check it out :
Here is the engine compiled, with a game.