What happens when (say) .NET isn't the best tool for a particular job? Just close your eyes and use the inferior tool anyway? Or use the right tool and just throw the hard-won Microsoft ecosystem synergies out the window? I'm constantly using different technologies for different projects; doesn't this come up a lot in the enterprise world, too?
Granted, I'm not an enterprise developer. I've never worked on a code base that more than 20 people were working on at once. But I don't understand what makes large organizations see a walled-in ecosystem like that as a plus rather than a trap.