There are valid specializations for programmers. There are application developers, systems architects, UI engineers, operations specialists, cryptographers, scientific programmers, etc. You don't care that your doctor uses the Acme Scalpel 4000, you just want your gut cut.
Yes, but the lead surgeon at the hospital probably doesn't want one doctor using an Acme Scalpel 4000, another using an Ajax Scalpel, and yet a third using a FooBar X-Scalpel.
Maybe that part of the analogy doesn't hold up for a hospital, but it sure as hell does in a software engineering organization. If you have a bunch of people working together towards a common set of goals, it makes things a hell of a lot more complicated if everyone is just working in the language they like playing with the most, regardless of their overall technical knowledge. Organizations standardize on best practices, languages, frameworks and technologies because it simplifies things.
"You don't care that your doctor uses the Acme Scalpel 4000, you just want your gut cut." Exactly. What makes you think that this is different in software... the end users DO NOT care what tool or framework you use to build the solutions they need. Now, doctors probably have preferences on what tools and procedures to use - just like we programmers.