It's actually a subset of C++ since it has the built in ability to create Objects and Classes. Definitely not C#. C# code looks much different.
The scripting language used is proprietary. While many of the built in functions, syntax, and features of the scripting language make it look like its pure C++, it is not. It's a scripting language created by STE that took a subset of features from C++ and was structures the same as C++. They probably saw it easier to do that than create a language from scratch since they were already coding the game in C++, so there would have been a minimal learning curve when it came time to create the scripts since they already more or less knew the language.
Since scripts are not real C++, more of a C+- in reality, you cannot use tools made for C++.
As itchboy stated, the game compiles scripts itself so precompiling is not possible. From my investigations, I believe that scripts are actually interpreted rather than compiled. When a modification is loaded, the script is translated from human readable code to byte code. When a command is ran, it is then interpreted by the game, hence why most errors are thrown at runtime and not when the game is loaded.
On a second note, I would never consolidate scripts into one file unless you have to, which is the case with mission scripts. It makes maintenance a nightmare. Ever try to debug a 30,000 line long script file? In my book, more, smaller script files are the best way to go.