Their custom scripting language is extremely slow to the point where I wouldn't consider using it.
You can use C#, but if you download the c# version you get a warning on startup which states that this version isnt production ready.
You can use C++, but I found the workflow here awkward, plus they just introduced it with 3.0. They are about to launch 3.1 but this includes breaking changes to the way you use c++, so if you were using it and wanted to upgrade you'd have to rewrite a portion of your code.
C# on the other hand, is to attract Unity users that are too lazy to put in 30 minutes to go through GDscript's concepts. It's OK that it's there, but personally I found C# one of the least enjoyable languages to program in.
I strongly suspect that most people will write their entire game in an engines default language. Especially in this case where the much advertised best alternative (C#) gives you a warning on startup about not being production ready.
Yes, C# is probably integrated due to its success in Unity, but it's a sane choice. I would argue more so than GDScript. C# has better performance, tooling, support, not to mention an existing userbase of people who already know (and I'm sure many of whom like) the language.
Ignoring C#, they cannot be breaking their API for writing native code. I'm not sure if it was a one time thing, or if it will continue going into future releases, but they absolutely need to have stability if they want people to use their engine long term.
Warnings for C# are there because it's new, and there is not enough resources to support it better. Also C# is not that easy to integrate as it doesn't have most data structures used in game development, so your own have to be made. In the end it changes so drastically that you might just call it a new language.
[0] http://docs.godotengine.org/en/3.0/about/faq.html#gdscript-w...
What's missing in Godot?