Second, Microsoft is open-sourcing their whole VM - JIT, GC, as well as compiler and libraries. Compiler and library code is already being utilized by Mono, and more all the time. However, Mono doesn't even have plans to replace their JIT or GC with .NET's, as far as I know (and the Trello board linked to in the article seems consistent with that).
Could Mono do that (once Microsoft's builds on Linux and other platforms Mono needs)? Yes in theory, but it would mean abandoning all the massive amount of work they put into their VM over many years. I don't know whether it would be rational or not to do so.
Licensing isn't a problem for Mono to use Microsoft code. However, Mono's runtime is LGPL licensed, and this has been a source of revenue for them (people pay Xamarin for licenses for platforms like consoles where LGPL is a problem). So to replace the Mono VM with Microsoft's could be a step back there.
There are also a few cases where the code needs to be tweaked so it works correctly on Mono and the platforms it runs on.
But there are several issues:
* reference source code not being portable and not working on Unix. * complex dependencies between the portable and non portable pieces * some bits were only released recently, and without those it was not possible to port other chunks * dynamic happy code high prevents some code from being adopted as Mono can be used as a full static compiler on iOS, Xbox and Playstation.
So as time permits we will bring those over.
We also plan on supporting the "core" model where our contributions will flow back upstream.
But "core" is still a bit undefined
Mono project has been mainly pulling Microsoft's code that is managed, which is the one that should run in any OS unmodified.