I don't recall the details but I understand M$ opened .NET because they're going to have a cloud-based ".NET IL in, optimized C(/C++?) out" service for Windows (desktop, tablet, phone, XBOne), while everyone else is stuck with running the .NET runtime bytecode interpreter. It's a remarkably well-thought-through plan; .NET has proven itself as a reasonably snappy platform, so Linux/FreeBSD/OS X won't feel too left out.
Well, the .Net runtime, including their current JIT compiler, is open source now, so nothing keeps people from improving the JIT compiler or replacing it with a static IL->binary compiler.
IIRC correctly, GCC could compile Java to machine code a couple of years back. This obviously required one to a) have the source and b) give up on cross-platform portability, and I don't know how well the compiled code performed in comparison to bytecode running on, say, HotSpot, but the option was there. In other words, it has been done before.
As much as I like to distrust Microsoft, if they can implement a static compilation scheme for .Net that provides better performance than what the open source community can come up with, and then offering it for Windows only, that may not be super-nice of them, but it certainly is not evil, either.
Oh god no.