The whole point is that although WPF / Silverlight may feel nice, they are a very rare exception that isn't crossplatform. For any non-MS development platform and language currently I've been able to trivially get a working environment on my company Mac, my home PC, and remote Ubuntu servers, where all the environment just works. (And if it doesn't 'just work' then it's on Win.) With MS developer tools, well... you sort-of kind-of can, but generally it's a basic 'hygiene factor' that they don't have.
And if you're stating '_good_ developer tools', then what is your opinion on MS-supplied basic tools - ssh app? copy/paste in Powershell? Connection libraries for their SQL server in all common (including non-MS) languages? Unicode support in console? I mean, theres a bajillion tiny, insignificant things that add up to a death by papercuts, since on Mac or Linux all third-party development environments for common languages Just Work the way they should, but I've seen numerous cases where getting up the same perl/haskell/whatever package on windows requires jumping through a dozen hoops.
C# is a quite nice language - but can I get one-click setup of it's tools on all major OS'es, and deploy code on non-windows servers as easily as with java or ruby?
Surface Pro seems like really nice hardware - but for any development needs, I'd rather want Ubuntu or MacOS on similar hardware.
MS problem is not, in general, poor tools - the problem is that it doesn't play well and integrate with the rest of the world; and in the rest of the world good integration with everything is a basic assumption even for low-quality recently started tools.