Another feature worth considering is the ability to manage binary file types. Binary file types include all of your images, videos, any compiled programs you might be offering for download or any zipped files. Allowing your content management system to manage your binary files allows you to have your entire website stored in your database. This provides a tremendous amount of flexibility and portability. This obviously doesn't necessarily make sense for every website, but if your website uses a lot of images or other binary file types, you can integrate this type of feature into your system. The result will be a simpler, faster method of building web pages for your website.
One of the assumptions we made in our initial discussion was that your web pages largely all have the same layout. If this is not the case for your website, you can add another layer of abstraction to the write out script. That extra layer of abstraction will take the shape of layout templates. By using templates, you can use a simple write out script to generate multiple layouts. You can take a look at Smarty, a template engine to get a better idea of what I mean when I say template. Once you have this set up, you can store your templates within your CMS, allowing you to make template selections as you're adding or updating pages within the system.
All of the additional features we've discussed can make your content management system more effective, but they all come at a cost. The development time you spend on each feature should be offset and superceded by time saved when you develop your website's content. Don't waste time building features you don't need, but if you can make real use of a feature the investment can be well worth it. If you spend less time putting a page together, you will have more time to spend on more important parts of your website's development.