In terms of its use-case, isn't the whole point of the GIR stuff @kugel- is doing to allow dynamic binding from languages like Python or Js without the compiled hand carved bindings? So that dynamically bound code needs to be able to check whats available to it.
Sure, but if there's no use case for the C API, wouldn't it be better as a GI/Peasy thing? But anyway, as said in theory it's nice, so if we add some dynamic stuff in the future it can be useful then.