The one issue that surprised me was the lack of support for CAS (Code Access Security). I see this as being a very important part of the .NET environment in the long term. People will always find ways of loading malicious code onto machines and so we need to reach a situation where even local code will not be run unless it is trusted. For example, if we take away from end-users the ability to give trust to code, say via a global policy, it doesn't matter if an email contains an executable attachment which the user downloads and attempts to run: the code won't be trusted and the OS won't run it .
Miguel also commented in another post to the Mono list that "Mono has plenty of non-Microsoft components" and pointed to a diagram. Interesting to note XML-RPC.NET is included. I do intend the next release of the library to work with Mono on both Windows and Linux - its looking good so far - I just need some time to complete all the work and testing.
 This does presume the ability to prevent untrusted unmanaged local applications from running so we still have some way to go to the scenario I describe.