I see one advantage to bind functions, let's say you want your users to be able to run untrusted code, it could be dangerous if some functions like Exit are available and can crash/delete files from the system.
I have wanted to add a scripting language to my game i have first added Lua but i have find it limited and i prefer to code in C++.
So i'm developping a scripting language that uses pure C/C++ (Objective-C/C++ could be also possible) with virtual machine like Java who compile code to bitcode and execute with a JIT compiler. I just need to register the symbols from the engine and include the header in the code.
The difference is i'm not developping my own compiler
it's a waste of time when you can find a working open source compiler and don't need to fix yourself the bugs.
I will show you what it looks when it will be functional, right now, lot of work need to be done, like a secure sandbox filepath for prevent the code to access other files then the game folder. It's a nightmare to understand how the compiler work, i'm on it for over a month.