I do agree with you : mono is a subset of .NET,
Cross platform compatibility is not the main reason for using Mono. I really like the C# and the .NET ecosystem.
I use a native UI for each platform, but the core code is the same. I'm not a big fan of those generic UI toolkit ...
For example the following either don't exist or are half-baked:
WCF (WsHttpBinding in particular), WWF (entirely which we use for WCF correlation), EF (not a biggy but would be nice), WPF (the best part of .Net), MEF (buggy and missing bits).
If I wanted cross platform, I'd go Java.