Sounds like what you want a microkernel with excellent IPC. There is still the problem of the window manager, incompatible protocols, and backwards compatibility, but I think a very small, robust core with discrete components that communicate in an isolated way instead of sharing resources is the way forward.
If you start viewing the filesystem as a huge global variable, it becomes obvious that something is wrong with modern OS / app design. One wouldn't tolerate this kind of uncontrolled sharing in a regular program; why should we tolerate it in an OS? Permissions help, but don't solve the issue, as they are still an access control measure on top of an already flawed model.