>> There is simply no shady language in the license that is going to affect Mono. If they ever decide to change Mono from an implementation of the .NET platform to something else (eg. JVM) whilst retaining Microsoft's code then they could be in trouble. But do really think for a second that they would change the focus of the project like that? Absolutely not.
Imagine a situation where MS introduces changes making .NET incompatible with Linux (or making it run several times slower) on specification level, so any implementation of .NET stack must implement them. Mono can't cut the changes out, they'll get their license to use .NET code revoked, you can't fork .NET for the same reason. Endresult? Embrace, extend, extinguish.
>> So your response to me pointing out that Microsoft hasn't actually sued anyone for the last 13 years despite all the claims that they would is that Java is still bigger and that if you made something that was unlike Mono that you would get sued. How is that counter my claim that saying that using Mono will not get you sued?
Neither Sun nor Oracle sued anyone for long time, untill one time - they did. As for "using Mono" - as long as you are end user and use it to develop your apps - MS is happy, since you're tying into their platform.
>> Irrelevant. You have the ability to verify code from an open source project [github.com].
Actually, it is relevant, as significant portions of whole stack are still closed sourced. Also, license of MS .NET strictly prohibits use of .NET code in projects that don't fullfill MS requirements for .NET stack, which, surprise-surprise, they control. So should they feel the need to introduce specific changes preventing .NET usage (or hindering it) on platforms other than Windows - they change the specs, good luck then. Microsoft vision of open-source - is they let you look at the code and promise not to sue for using it, but if you want to contribute - you mus give them the rights to the code and license for the patents and any changes you make must be made according to MS vision. Effectively, this clause about .NET code being usable only in .NET stack adhering to MS standard means that should MS feel the need to change anything - you won't get to fork it or do anything with it.