Yep, all of our HLL bindings use the C APIs at heart–even the flow bindings! An application using the flow bindings would end up doing its application logic in flow, calling out to the C bindings through the flow bindings and then relying on the underlying flow fdbclient. The drawback is that you have to do things through an indirection layer when it seems like it would be easier to just call flow things directly. The benefit you get from this is that you can now independently update fdbclient without having to update your flow-based application. (You can even use a different version of flow itself within the bindings and within your application.) Our current suggestion is that future bindings should probably go through the C bindings as well.
I wrote up a topic on what I think the steps are to get a fully-fledged binding up and running here: Creating New Bindings I hope that helps!