That's an interesting viewpoint, but if I may offer some counter points:
By nature, I am a designer. Most of what I do day-to-day involves sculpting the user experience. I know that as much as we want to say that "we have X experience and this is the best way" often times brand new users offer the best insight because they are unfamiliar with your design. A person who has been using XCode for years now has probably grown to ignore the rough spots. Much like you can learn to ignore a train's noise if you live by the tracks. New user's feedback is usually the most valuable feedback you can get.
Additionally, I am a huge open source advocate and would gladly help hack and improve upon XCode. Sadly it's not open source. It seems silly to propose that I rebuild, by myself, the 95% of XCode that is awesome in order to improve upon the 5% that needs work. Complaining about a highly extensible open source editor like emacs is indeed just complaining -- just fork the project and implement your code. But choosing to persuade those with power (Apple) to improve upon a product with hundreds of thousands of man-hours already invested instead of rewriting the whole thing myself... well, I'd call that smart programming.
I'd also like to point out in the conclusion paragraph, I mention that I am using TextMate for the time being.
Even better would have been an article where, having analysed the problem, you have come up with a solution. For example, you seem to want a better mechanism for switching between source files in a project. How about a script for xcode that opens up a little search box where you can type in a file name from your current project - it auto-completes the name, and then opens the file? Way faster than clicking on a tab. It'd basically be a copy of the way Spotlight can be used to launch applications - Command-Space, type the first few letters of an app, and hit enter. Done in less time than it takes to reach for the mouse. As a bonus, it doesn't waste screen real-estate on tabs, and can be used to switch even to files that you haven't opened yet.
This is the point I was trying to get at in my first post. You're a programmer - this type of script is almost certainly well within your capacities. You could probably generate it in the time that it took to write your article.
There is a difference between open ecosystems that you can change at will (emacs, vim) and closed ecosystems that you can only change so far as the manufacturer lets you (Textmate, Xcode). To propose I "just write a script" is really to ignore my entire post and it's detailed explanation of why different window management systems work in different climates.
It is a point worth remembering that all of Apple's own software is built in xcode. That all by itself shows that the app isn't fundamentally broken, even if one may feel like there is room for improvement.
On a sightly different note, I'm always fascinated by this type of rant, of a programmer complaining about their programming tools. I mean, you're a programmer, if you don't like the tools, roll your own that are better. Or write some scripts that ease the pain in the tool, or adapt a 3rd party tool to do the task. For example, this guy could quite easily prepare an iPhone dev plug-in for Textmate, if xcode really is as bad as he says. Here's an example: http://www.pathf.com/blogs/2008/11/iphone-sdk-testing-with-t...
Complaining about dev tools for me sends up a whopping great big red flag that the programmer isn't as good as they think they are.