... а как насчет поддержки кода?
И документация (даже если вы работаете над проектом единственно: помните ли вы, что эта функция делает через 3 года?)
Кэширование, если это возможно, использует memcached или apc для уменьшения попаданий в базу данных, а не только в шаблонном поведении.
расширяемость. В настоящее время у каждого известного cms есть свои модули / плагины: напишите свой код, чтобы разрешить их использование ( hook функции?). Не воспринимайте плагин только как «внешнюю» вещь: вам будет приятно создать модуль, отвечающий вашим потребностям, вместо того, чтобы полностью перестраивать часть вашей CMS.
Белый список для безопасности, htmlpurifier для html-полей.
Строго следуйте соглашениям MVC (даже если этот пункт потенциально субъективен).