I think xCode e.g. which I use every day could easily be made into 3 different programs. 1) Project management and configuration. One program where you define which pieces go into your project. How they are compiled, deployed etc. 2) An Editor component which does syntax highlighting, refactoring, code navigation etc. 3) A GUI designer.
Sure integration has its benefits. But it also has many big disadvantages. Many people like to use different editor components, e.g. AppCode does refactoring and code navigation better in many people's view than xCode. Yet it becomes an incomplete solution as they do not have as sophisticated GUI design and project management tools. But it these were separate tools which could just as well be used with AppCode one could inspire much more diversity.
Likewise the monolithic iTunes locks out any kind of alternative third party solutions. There should be one synching applications which can sync content like pictures, books, music etc. But that is all it should do. Movies, Music, Apps etc should be separate apps and we should allow alternative third party alternatives to these. People might want other ways to display and organize their iTunes music e.g.