One theory I've read is Microsoft wants Xamarin to stay third-party so Microsoft's competitors continue working with them.
Xamarin is working with a great many companies who would think twice about working with Microsoft directly. This way Microsoft can shove money to Xamarin to forward the ecosystem without scaring anyone.
Not only that, but Xamarin's independent existence is like free insurance for companies choosing .NET - even if Microsoft were to drop support (unlikely, but look at Silverlight), Xamarin would continue providing a viable way forward for the language and runtime. Now that MS's .NET is open source, Xamarin's .NET is like OpenJDK - Xamarin is a governing body and authority for the language/API if Microsoft were to drop it. So it's good for Microsoft to have Xamarin as an independent entity.
More like Xamarin is IBM. From http://openjdk.java.net/faq/ ... if you replace these words from that FAQ, it's remarkably similar to the current .NET situation (even though Xamarin is much smaller than IBM, the amount of attention each company gives to language & core framework development is probably on a similar scale).
> Oracle and IBM announced in October 2010 that we will collaborate in the OpenJDK Community to develop the leading open-source Java SE implementation, and make the OpenJDK Community the primary location for open-source Java SE development. Oracle and IBM will support the OpenJDK development roadmap that was proposed before JavaOne 2010, which accelerates the availability of Java SE across the open-source community.
Xamarin is working with a great many companies who would think twice about working with Microsoft directly. This way Microsoft can shove money to Xamarin to forward the ecosystem without scaring anyone.