Don't mistake the tool for the engineer, as mentioned Ateml is using the Visual Studio shell. It's also very straightforward to use VS with makefiles to do embedded work. At the risk of starting another religious war I find it to be one of the best IDEs on the market.
Have you tried Eclipse? The last time I used VS (a couple of years ago) it was a huge step backwards compared to Eclipse.
Yes, spend every day in it and it drives me mad. Even for Java development is leaves a lot to be desired. It doesn't handle external changes to files easily making it trivial to erase work if you don't manually refresh the project every time you make a change with external source control. The debugging UI is pretty non-intuitive(no way to consistently launch the same project if multiple projects are loaded) and doesn't have good watch support or many of other modern things you'd expect.
There's a bit of a learning curve when adjusting to any IDE but I'd recommend you give VS another try, I've used both extensively and very much prefer it.
Also, while I agree that Java and C# have no place in performance critical code they are still extremely valuable languages. I challenge anyone to find a language that's more productive for building UI than C# and with C++/CLI you have an extremely seamless access to native code interop. There's many support parts of building embedded systems where tools like these can be extremely valuable.
I guess it depends on the framework you are using. C++/MFC is one of the least productive ways to write a GUI. However frameworks like WxWidgets or Qt make it much easier to write (portable!) GUI programs using almost any programming language. C# is just limited to Windows.
Not true, checkout the Mono project(
http://www.mono-project.com/WinForms) they've got a fully compliant WinForms implementation for OSX, Windows, Linux that's binary compatible with VS(
http://www.mono-project.com/Guidelines:Application_Portability) or MonoDevelop, although VS's form builder is top-notch. I've spend a ton of time with wxWidgets and while it's a good crossplatform framework I'm easily 2-3x more productive in C#.
In fact Mono has been making large strides in the mobile market along with game development with Unity using it as their primary language.
One of my backburner projects is getting embedded Lua to work on an LPC1768. One of the problems I see with using C/C++ is that it is easy to shoot yourself in the foot. It makes sense to use a language which protects the programmer from making mistakes with pointers and buffer sizes. Another language I wanted to try on a microcontroller is Ada. According to some people Ada is excellent for mission critical software. The last time I looked there was no useable ARM port.
Lua is really nice, I've worked with it quite a bit and it shines on systems with relatively low memory requirements(outside of the uC space). I've seen it used on the PSP(24MB system memory) in a ~800KB preallocated block to handle all the game logic of quite a few shipped titles.