Why was the g_ version used in the first place since there is no matching g_fwrite()
It's to handle filenames uniformly I expect, for example on Windows to take a UTF-8 string for filename and mode and convert them to wide-char/UTF-8 like Windows uses normally. The [definition is here](https://git.gnome.org/browse/glib/tree/glib/gstdio.c#n713)
I don't there's an issue as the same C lib will be used in all supported configurations (mscvrt or glibc). It might be a problem if Geany `g_fopen`-ed a `FILE` and passed it to Scintilla, which uses a different C runtime (part of libstdc++ IIUC).