Re: Self Contained Package vs Loose Files or MSI
Large programs take advantage of not being monolithic for several reasons:
1) Better distributed development/testing efforts, and code reuse among *your* applications
2) Only required modules can be sold/deployed, added/removed anytime, loaded in memory only when needed, and unloaded (i.e. to be replaced without stopping the whole application).
3) Patching doesn't require to redeploy a whole very large application
"Apps", whatever they are named, can be monolithic because right now they are often simpler, and with reduced functionalities compared to "desktop" ones. As soon as they get more complex, the need to "modularize" them will arise again.