There's no fundamental technical reason why apps can't run as their own users (like apache
and postgres have done for 20 years) and and use something like oauth to control sharing data with other apps. Just laziness.
The UNIX-y solution to this is to ban proprietary apps and run only vetted free software, interoperate with protocols, not implementations.