Here we are talking about .NETMF and not for C# language specification (small but very significant difference).
This is precisely the point, I think. I have the choice to use the C# specification as basis for my programs, or to use the NETMF specification. Ahhh, wait. There is no single, binding document that claims to be a NETMF specification...
There are just a couple of descriptions how NETMF is currently implemented. As Corey says, this is not a promise in any way. And the problem of having no authoritative NETMF specification is obvious: if we had one, this discussion would be much shorter and the result clearer. After all, which of the mentioned documents should we consult, and how can we be sure we have studied all relevant documents?
I would love to see a NETMF specification that specifies the differences between full .NET and NETMF more precisely and more completely, and in one single document that doesn't distract with obscure descriptions of how the stuff is actually implemented. I shouldn't have to read the porting kit documentation to figure out which assumptions I can make, and which ones not. I bet there are subtle differences that practically no one is aware of. For me, that's the really bad thing: creating dependencies on some possibly temporary NETMF-specific behavior, without even being aware of. If I am aware of the differences, then it's my decision and I know that unpleasant surprises later on are possible. That's perfectly ok.
So for me it's ok (although not desirable) if there are differences between full .NET and NETMF, as long as they are described clearly, completely, in one single document, and with some promise by Microsoft that it stays that way in the next releases. Then I can make an informed decision whether I want to rely on NETMF-specific behavior or not, rather than just hope for the best.