I would also say there is nothing wrong with Carbon. I produced a UI and code to handle it that runs decently on both MacOS 9 and X, and even though the Interface Builder package chews up 48K, my entire app is seen as 76K by MacOS 9 (old-style OS 9 Package) and compresses down to 8K. Of course it is only the code required to do minimal UI response at this point, but hey, still pretty nice.
Carbon is actually a nice interface for the procedural-minded. However, it includes some nifty things they should have had in OS 8 or earlier, that revolutionize how one handles their application flow, making it much nicer to work with. Unless my app is actively accessing the network bandwidth or doing updating to on-screen gadgets, it uses 0.0% of the CPU as reported by top in the terminal. It is pretty hard to beat that type of proper optimization.
The big issues with Carbon arise from programmers still using the out-dated WaitNextEvent() polling methods, and from just bad programming or flow design. REALBasic is just too bloated a tool IMO, and it makes me glad I got weaned off BASIC when I was still in 5th/6th grade. The C-based languages are currently the best out there for speed/ability combinations. Obj-C included. Carbon and Cocoa just have slightly different feature sets, and different ways you go about things, nothing more.
I can't help it if Apple can't port the Finder over to OS X using Carbon properly, or if RB can't produce good optimized code. I can help it if my Carbon app works good on both platforms, and does what I designed it to do without crashing.