Building a web-base content management system is hard. The work isn't necessarily hard, but he decisions are. Mainly, should or should I not include this kitchen sink. There are basically two main classes of CMS that I have seen. Super flexbile, powerful, incomprehensible systems, or simple easy to use systems with few features.
Working on OpenACS 4.5, I was introduced to a new application for OpenACS called edit-this-page. It's goal is a simple, easy to use, and easy to extend CMS. I am working on the next version, and the temptation to add more and more features that would "be nice to have" is very strong. Deciding what is necessary, and what is optional is very tricky. It is also probably impossible. It is better to build a good base that can be extended. OpenACS is a toolkit to build applications. It is a given that there will be code written to customize it. I think this is the way to go. Leave methods to extend and add features available, but do not build in too much.