Since the VR Juggler 2.0 beta days, I have been planning to add Cocoa support to VR Juggler to drop the need for running an X server. Doing so means using Objective-C and Objective-C++. The build already supports these two languages, and I have had most of the Cocoa written for a while. The big hurdle has been working out the multi-threading issues in the context of Cocoa, of which there are many.
At this point, I think I have most of the big problems solved. The only remaining issue known to me at this point is how to prevent any windows from being opened from the kernel control loop thread before the primordial thread enters the Cocoa run loop. It may be possible to graft data (most likely an NSConditionLock) onto the global NSApp object using features of Objective-C.