It doesn't. You can access all Objective-C features from C, it's just a bit of a pain. There is a C interface to the Objective-C runtime.
The point is that it shouldn't be a pain to use these interfaces from C, concepts from ObjC/Java/C++ shouldn't leak into them.
That's why C interfaces are the reasonable choice, you can interface with them conveniently from pretty much any language and if you want a more idiomatic "pointless layer of indirection", you can build it.