Although it's a KMS I wanted to contribute some of the things we did in sharenet for the so-called knowledge library:
You can define any new object-type and assign attributes to these types. These attributes can be shorttext, text, files, dates, integers, categories, links (to specific object-types or general links). In order to display lists of objects you can then assign attributes to be the shortname and/or longname of the objects. To speed up the lookup of existing objects the categorization system is used to browse the objects in all assigned categories. In addition to that, the linking package is used to link objects by link-attributes or by letting users contribute links along comments/feedback.
Maybe this knowledge library could be of help in designing a CMS since it could be used to store and retrieve all kinds of content.