I think the problem is that individual teams will make decisions that make sense for their own individual team. These decisions may not make sense for the larger organization as a whole (ie. having every team working in a different programming language) as they don't have the birds eye view of the organization.