Nick,
>I don't get it. CLR supposed to support, let's call it certain set of functions. If you can make CLR smaller without giving up some functions then why do not do it in the first place? Then again, if you cut the functionality and have different versions of CLR then it is not
Common Language Runtime. :)
I think the differences are more in the area of keeping compiled programs stored on the computer or device. For example, CLR programs can be pre-compiled or just-in-time compiled. When JIT-compiled they are probably cached in the compiled version, where on the smaller-footprint devices they are JIT-compiled each time they are run.
Also, some versions of the JIT's are more efficient, producing more compact code, but at a slower compile speed. Others are much faster, but produce larger-footprint results.
Something like that...