80s sockets isn't enough for a modern app
"There's something called the sockets API. Its remained unchanged pretty much since the 80s..."
Funny, getaddrinfo() and kqueue()/epoll() weren't there in the 1980s. So if you want IPv6 support and to avoid the well-known performance problems with select(), you have to use more modern code.
Assuming you have getaddrinfo(), does the implementation and version you have support IDNA? Do you need to do the punycode conversion in your app or is it done for you inside getaddrinfo()?
Have you ever tried implementing Happy Eyeballs using just getaddrinfo() and BSD sockets? I have, and it's ugly, due in no small part to the lack of async interface in getaddrinfo(). Far easier just to call the complete, transparent, implementation Apple provide... which does not use the BSD API.
How about access to the system certificate store? Not even thought of in the 1980s.
DNS discovery? Sure, they could include a complete DNS asynch implementation in Chrome (and, for all I know, do) but there's one written by Apple just waiting.
They probably implement HTTP using a library but Apple give you that too. Again, not in the BSD API.
BTW Apple do support most of their networking improvements in the (what they regard as legacy) BSD API, but there are a few things only supported in their own implementation. Once you start trying to support iOS as well, there's no contest: you can't turn on the 4G radio using BSD, so although present it's essentially useless.