Including macOS and NeXT, their POSIX layer is only meant to bring stuff into the platform, not to ever let it out again.
There is nothing of UNIX on Objective-C nor Swift.
Additionally, iOS only supports a subset of UNIX.
Finally it is impossible to ship an iOS application only using the POSIX subset exposed in OS.
How many iOS apps have your ever shipped?
Of course. It only needs what the applications supposed to run on it need. The same is true about my car entertainment system - it probably doesn't have many tty's and doesn't really need more than one filesystem. Same, BTW, applies to Android - it's a Linux, but it's not really a desktop OS.
> How many iOS apps have your ever shipped?
Does it have any relevance to knowing the difference between an OS and a GUI?
That's because the GUI is not a part of the OS. The GUI is not an integral part of macOS - it's just that Apple sells one bundled, the same way that Canonical and Red Hat bundle Gnome. We had a number of other OSs that made a similar decision, on Lisp machines, Smalltalk workstations, Apollo's DomainOS, and a couple others I can't remember. None of these survived to this day.