I'm not sure what the issue is (I'm not sure I am understanding you correctly, even!) - while the Arduino IDE isn't the be-all-end-all of IDEs, it was never meant to be. The Arduino was meant as a means to teach those who barely know what end of a soldering iron to hold how to use and integrate microcontollers into their own projects; many of these people were students, teachers, artists, and the like. Very few "professional engineers".
Professional engineers already knew what to use - if they wanted something based on the ATMega, they just grabbed an ATMega, used a regular ISP programmer and the various tools (avr-gcc, avrdude, the various Windows offerings the Atmel puts out and others, etc) to integrate the ATMega (or ATTiny, or whatever other AVR microcontroller) into the project.
This doesn't mean the Arduino can't be used professionally - just think of it as a "carrier board" for the processor it uses (ATMega); you don't even have to use the Arduino libraries if you don't want; just code it in C/C++, like the people over on the avr freaks site do (but then again, most of them likely use regular dev boards, or the bare chips and a custom ISP interface). Once you have the hex binary to upload, it really doesn't matter.
You can easily integrate the ATMega into your own projects, and run of as many boards as you want (you -don't- want to integrate an entire Arduino - it isn't cost effective), and program the boards by uploading the hex code to them using an ISP programmer. Look into "standalone arduino" for more info.
As far as the IDE is concerned, there are ways of setting things up to use other development environments; setting Eclipse up to code for the Arduino and other AVR devices is a popular route. Some guy recently released on this forum a set of Python scripts which I think could be used in Code::Blocks or Bluefish IDEs; these scripts basically call out to the compile (avr-gcc) using avrdude and integrate the Arduino libraries into your code, just like the Arduino IDE does, while allowing you to use your own code editor or IDE, instead of the Arduino IDE.
I don't think it is absolutely a necessity though for "professional development"; in fact, it might be overkill depending on the project. If you want professional, you want quick and concise, without stuff getting in your way or cluttering things up. Use the Arduino IDE for the compile process, no biggie. Use an ISP programmer (which can be an Arduino, BTW) to migrate the code to the ATMega (while dropping the bootloader) - the Arduino IDE already allows for this. If you need code versioning and tracking, install CVS or subversion, and check in/out the codesets as you work. Develop your boards and schematics using Eagle or some other system (kicad, gEDA, etc).
If you're worried about the IDE seeming like a "toy", I really wouldn't; in fact, I think that it is pretty close to perfect (the ability to easily handle files for library building would be one thing I wish were fixed; I suppose it could be done by changing a few files and recompiling the java source, probably not something really hard). All the controls and such are there making it easy to use, what you don't need isn't there to get in your way. But, if there is something that is needed, you do have the option to use something else (indeed, one could easily use the command line and vi if they really wanted to).
