I will agree with you about the documentation, with few exceptions MS documentation is some of the best written. But this is far from something that should prevent a platform swap.
The piss poor code editing tools in VC++ irk me more than anything, I have to say that I feel like it's the worst of these platforms. Resharper for C++ is coming though, so maybe that'll change my mind.
I wanted to write a simple tool to mute a game when I tabbed out of it.
No access to per-app volume controls from .NET without the use of some random paid libraries. So I went with C++. Access via C++ involved incredibly complicated COM APIs, which were very poorly documented (the whole COM system itself was confusing but these APIs in particular involved a ridiculous level of nesting) and no good clear examples were available.
Easily more confusing than the simple calls into the DBus interface for pulseaudio to achieve the same thing on an Ubuntu desktop system.
When I started Android development, the quality of documentation was so far below what I was used to from Microsoft that it hurt. If not for StackOverflow I would probably have given up and switched to Microsoft's mobile platform.
Besides that, I'm not impressed by IntelliJ. Not even a little bit. I am however, vastly impressed by Visual Studio and all the IDE's that are based on it.
You want to see some poorly documented stuff, check out BouncyCastle's "lightweight API" or OpenSceneGraph. Great libraries, but figuring them out is a serious investment.
Maybe Android docs aren't so bad in comparison to most documentation. However, in comparison to Microsoft's they are severely lacking. And this is coming from someone who used to bitch at all the errors he found in the Microsoft docs!