You are completely full of shit. Somehow, Microsoft supporting multiple hardware platforms magically becomes Microsoft restricting hardware platforms! It's like you live in bizarro-land.
NT was built on MIPS, then later ported to x86 and other platforms. MIPS failed in the marketplace, so Microsoft *did what customers wanted* and stopped supporting MIPS.
Microsoft ported NT to Alpha, because that looked like the next big platform (in workstations and servers). Alpha was ridiculously expensive, both to buy and to run, and Intel advanced their processor tech enough that Intel matched and then beat Alpha performance. So customers only wanted to x86 machines. So what did EVIL MICROSOFT do? They stopped wasting time on Alpha, because the market wanted x86.
When Intel developed Itanium, which was supposed to be the Next Big Thing, Microsoft supported that 100% in Windows. Microsoft fixed all of its 32-bit-vs-64-bit bugs in Windows and in the main server apps (SQL, etc.), and supported and sold these products on Itanium. How is that restricting choice??
When AMD developed AMD64, Microsoft worked with AMD to port Windows to it. Mind you, Microsoft had to be secretive, because publicly they were still committed to Itanium, and Intel really did not want a competitor. AMD64 would never have reached the market unless Microsoft had ported Windows to run on it. You literally have Microsoft to thank for desktop 64-bit computing -- without Microsoft, AMD never would have had the support to push a new x64 chip design, and Intel would not have been forced to change their own designs to match.
"When Microsoft dominated they pushed developers towards non-cross platform development" God, you're insane. Microsoft pushed non-platform development in the sense that they pushed *THEIR OWN PLATFORM*. What the fuck is wrong with that?? I don't see Linus pushing cross-platform development across Mac, Linux, and Windows -- he pushes development on Linux, and nothing else! What the fuck is wrong with that?