Scratch your own itch as they say. And I think that might be the case for many people. Just look at many open source projects. Most of them start because someone is not happy with what is currently available.
That is exactly why there are so many CMS out there. Joomla and Drupal both have thier pro/con but honestly they beat most everything else out there from a developer standpoint. The code is well implemented, documented, etc. Joomla follows more best practices, at least in the sense it uses design patterns and objects, whereas Drupal is entirly procedural (from what I've seen). WordPress is like a light weight version of Drupal with it's extension mechanism using hooks as opposed to a more OO inheritence approach. It's interesting because Drupal allows you to use an existing module, and extend only what you need, whereas Joomla (from my experience) requires you to either:
1. Inherit and override
2. Replace completely by copying the existing modules and hacking in your features
The Drupal approach in this regard is much more expediant and best overall in design as no hacking is required per se. Of course this kind of extension can only take you so far until you need to start from scratch, and Drupals module architecture is nothing what it should be. There is no sight of MVC (unless you really try hard and see it -- but from a framework perspective it's non-existant) and implementing anything more complex than a hellow world feels incredibly hackish, awkward and blah. Joomla does promote MVC so it's no wonder it's components/modules are often sold as mini-applications.
Not sure why I'm brain dumping like this, I just found both systems equally fascinating and annoying. Ideally a CMS would be built to facilitate both a hook extension system and component architecture.
The design of such applications would resemble the development of advanced Windows applications almost exactly.
Drupal lets you do things similar to Windows extensions. You know how when you install a program like Norton or some Backup utility and it installs an shell extension that adds a custom checkbox to the standard "Save As" dialog box so when saving a file in your favourite program, like Word or Excel, you could optionally let the back up utility to tag that files as worthy of backup, thus saving the user of having to find the file in the backup util? Drupal hooks work in a very similar way, whereas, when you building a custom component in MFC you build it from scratch, hopefully following MVC. Joomla works much more like that approach to solving the problem. Both neat, but even better when coupled togather to form the over all system.
Anyway, again sorry for the brain dump, it's just whats on my mind right now and I feel like talking
Cheers,
Alex