We are likely to need more metadata on the types and functions than what GObject-introspection currently provides.
For #13 and other similar cases, we need a thread safety annotation. I have filed a bug on GObject-introspection, but pending any action on that (and I'm not holding my breath), an in-project solution is needed to augment the GIR data with thread-safety attributes.
Some types and methods need to be blacklisted. In Glib and GObject, we don't want bindings for types that will be supported intrinsically by Grust.