I thi nk that what you are seeing is the difference between fat packages and slim packages. What I mean is that in your typical gnu/linux distribution, libs are installed on the system and applications depends on teh libs. That makes dependency issues a real nightmare.
But all other succesfull operating system take a different approaches. on windows, application typically deploy their own libraries. On macosX everything is typically in a fat binary. On android, all libraries are shipped in the APK. I assume IOS works the same. They all depend on a slim "operating system" and on shipping "complex" libraries when needed.
I wonder if that is the main problem with application deployement?