to abandond the entire "but we want to be compatible with all databases" whine, and decide on ONE database, which they use CORRECTLY and EFFICIENTLY. I'm sorry, but nearly a hundred queries for a single pageview is not acceptable. Please decide on an optimum technology stack and use it efficiently; and publish both the optimum stack and a fully patched, efficient version of the code specifically for large-scale deployments.
Check out Pressflow, a mysql-optimized "fork" (more like a "distro", really) of Drupal, created and supported by a reputable and widely-known Drupal consulting firm..
This has always been a debated topic. Depending on the needs of your client, or yourself, sometimes it is best just to make a custom CMS. Some non-developer types out there might scoff at this, but think of it this way. You could literally make your own CMS after learning some basic functions of PHP and MySQL.
Seriously? You think it's better to rely on *your* own experience to handle every aspect of what should be a large and complex piece of software? Don't you know what we talk about here on Slashdot?
The box-with-a-category, I also gave up on. Apparently, the "solution" is to dig into PHP in your theme (why themes are chock full of code is beyond me) and edit the files. Well, except that then when a new version of the theme comes out, you have to port your changes forward. blah blah blah
Or, you could keep your business logic where it belongs, in a module. This is modern programming here, not Joe's PHP cms.
You're right, Drupal is amazingly powerful. However I think it's deceptive to compare Drupal with other CMS's like Joomla. There's a reason Drupal's learning curve is so steep - it's so different from your standard CMS. My point is: I don't think you have to be a PHP ninja to "get the most" from it. I think you have to be a Drupal ninja to do that, and the bare-minimum requirement to start down that path is deep experience with PHP. So yeah, that's why I say it appeals to people who like to work from scratch: It's like learning a PHP framework from scratch - more like that than learning to use a standard CMS is, anyway.
You just need to be an experienced developer to understand Drupal; it uses idioms that beginners just do not understand. I am not a 'deeply experienced' php dev, not by any stretch of the imagination, yet I thoroughly grok Drupal (after a period of learning,m of course).
No amount of careful planning will ever replace dumb luck.