I used to work for Microsoft and while I was there I interviewed at least 100 people. Some of the things you are saying are just laughably untrue. Microsoft (as well as other companies) look for talented people with potential to be excellent employees and NOT some guy who happens to have experience with the one specific technology or programming language that we need at that moment for a specific project. We would regularly hire people with experience only in Linux, or Java or hire C++ developers for a job where they would be doing mostly C# or JavaScript or whatever. Very rarely we would need an "expert" on a specific technology or technology stack and give that more weight in the hiring process, but that was definitely an uncommon one-off situation. Having been through Microsoft's hiring training and having been one of 50 or so people who was a regular interviewer for positions in Windows Live, I can tell you that technical skills (even for the technical positions like developers and SDET's) were only about %20 of the focus for a typical interview loop.
The problem is that it's hard to find a developer who is the total package. Some candidates could code through whatever hoops we gave them but fell flat on their face when we tried to get them to be creative, or delved into their interpersonal skills. Others had great creativity and interpersonal skills, but were shoddy coders. When we did find a candidate that was a good fit, we would hire them and normally spend the first few months training them and helping them get up to speed on the technology and products we were working on. I know this because I was also in the mentoring program and mentored a number of new hires on my own team.
I could see you maybe making the argument that the hiring standards Microsoft is setting are too high, or that it's wages for tech workers are too low, but that's a very different argument than you are making.