NeXTSTEP became the basis for OS X. It meets the Single UNIX Specification [2].
[1] https://en.wikipedia.org/wiki/OS_X#History
[2] https://en.wikipedia.org/wiki/Single_UNIX_Specification#OS_X
Both Android and OSX are listed under https://en.wikipedia.org/wiki/POSIX#Mostly_POSIX-compliant
What I would like to know is, is there any fundamental difference in how the two have derived from their predecessors, ie. Android kernel from the Linux kernel and OSX's XNU kernel from the NexTSTEP/BSD kernels, specifically in terms of compatibility concerns.
(Edit reply to below: Yes but my understanding is that the Android kernel changed fundamental system calls, such as those used for memory allocation, forcing everything userland to be rewritten. Is the 'two systems' of XNU you describe not, therefore, similar in its effect on compatibility?)
The OSX kernel has two, due to it's bolt-on nature. Mach message passing and BSD system calls. As far as I am aware, the BSD system calls is an emulation layer, and is not entirely complete.
As a user, you don't care; the quirks of both systems are papered over by libc, which does the appropriate syscall dance to create a posix compliant system. (For an example of a Linux quirk, 'exit()' on Linux doesn't actually exit the process, it only exits the current thread).
They could have started from some other kernel. They didn't happen to do that. I don't think it means much.
BTW, Singh's writings regarding OS-X are exceptionally well researched, detailed, and thorough. I highly recommend them for anyone interested in OS-X/XNU internals.
HTH
1 - http://www.kernelthread.com/publications/appleoshistory/7.ht...
2 - http://www.osxbook.com/book/bonus/ancient/whatismacosx/arch_...