For instance we all know "the dependency hell", but we also know the stockpile of wasted resources to deploy essentially an entire OS minus the kernel and few surrounding just to deploy a small app and the issue such model have with gazillion of built-in vulnerabilities because the small chat client dev do not have upgraded OpenSSL simply because for him is just marginal. We know the idea of "separation" and the normal failure because we need integration, resulting in pushing data outside the desktop or punching holes here and there in a Babel's alike tower of CRAP.
Essentially BOTH model does not work.
So? Well... In the classical systems there was no OS - userland - application software. Just a single application where various actor develop different aspects, including the end users, since they were "end users programming environments" and "programming" was just a simple and easy interaction with "the system" (the single fully-integrated app). Those systems have had their own set of issues, but they have offered MUCH MORE with much less hell than newer systems. Yes, much more. Yes, an old Alto offer TODAY much MORE than a modern system to the end user.
Both "modern" systems, those with the classical "Unix approach" (GNU/Linux classic package management) and those with "Windows approach" (modern package management systems like snap and co) are the result of the need to sell software as a product before, as a service thereafter. They do not have solved the issues of pioneering BUT they have added much new issues.