Having decided that I googled once more and found this article:
http://www.mikeash.com/pyblog/friday-qa-2010-01-22-toll-free-bridging-internals.html
Which just means, I could have saved myself a lot of reasoning, by
doing this first :-) And this article even points to one with more
details. I think this is the way to go. One downside here is that
this
means we will need each CoreBase function twice an internal version
that contains the current implementation and an external, that checks
the passed in reference before calling the internal one. And we will
need to figure out a way to do the message send without
objc_msgSend()
for the old libobjc runtime.