Why?
- Developers and ISVs should be able to use the development environment of their choice without limiting their userbase to users of a particular desktop environment.
- Users should be able to choose the best applications, regardless of their desktop environment.
- Interfaces between applications should be well-documented and well-defined, so they can be supported compatibly over the long term.
Modularity, documentation - it's just good engineering.
Choice is good; users and developers should be able to choose the environment and applications they like.
Fragmentation is bad; choices should not come in bundles. If I choose Windows, I should not have to choose Internet Explorer.