Since "unix" times there is a strong tendency to incorporate into OS whatever possible, just to attract application developers. Both Linux and Windows are enormously bloated and vulnerable because of that. To become safe, secure, and stable OS should not include anything that can be done in application. Sharing hardware among applications is the only essential OS function.
I see nothing wrong with application using TCP/IP library to communicate with network packet service/server (another "system" application) that was granted access (by OS) to network card hardware. OS itself does not need networking

Of course, each application should not see anything, but its memory space. Linking applications with kernel is a pure nonsence - OS code exposed to applications allowes them to attack it easily.
Each application may have bugs, bugs can be used by intruder, so each application should be treated as "dangerous to itself and others" (potentially "insane"


BTW, approach from "A new design" topic may provide a better security...