I make a CMS and sell it for a living (we also have an open source version). I'll be the first to say we're nowhere near 100% there, and won't be for a long time.
CMS is a bit vague because it encompasses so many areas that overlap, so one product is inherently not going to excel at all of them. These areas include:
- Traditional content management
- Document management
- Workflow/notifications
- Revision control
- Access control/restrictions
- Website editing
- Website layouts
- Website features (forum, search, blog, events, member registration, ad infinitum)
- Website building framework for custom development
The core of a web CMS is just a framework (or in traditional CMS-speak, a content server...), then come the apps that each handle different components of the site (blog, events, etc), followed by one of those apps which handles the actual content management itself which tends to encompass the rest of the above points.
As you can see, this is a lot for a single app to do and do well. Some of these aren't needed for smaller sites, but the same CMS that works well for those then won't work well for larger ones. And the more features a CMS has, the less it retains of the simplicity that made it appeal to the smaller sites.
Personally, these days I use our CMS as the framework that underlies the SaaS software I'm building for my other startup, so that's where my focus has been. So for at least the next while, the biggest changes in our CMS are likely simply to be framework-level things to save development time or improve performance and things like that. But again, those only benefit me and those users using it as a framework, not those who just need a simple web page editor.
In short, CMS fails because it tries to be everything to everyone. Blogging software overtook it in popularity because it did exactly the opposite. Now most blogging software is following the same path and becoming bloated CMSes... Kinda funny to watch actually :)