и практически не имеет гибкости
По заказу строю на iCMS сайты любой констукции
По поводу кеша - это мой стандартный модуль кеширования. Его громозкость кода обусловленна тем, что, он предназначен не только для кеширования страниц, но и для кеширования массивов, объектов, элементов страниц и прочего.
Таким образом, если в странице меню делается сложными выборками и расчетами - мне достаточно сделать предварительные обработки, а готовый к употреблению объект записать в кеш, и потом уже его использовать .
Естественно, если необходимо кеширование только страниц - то все это можно сильно упростить, тем более с учетом того что iCMS построенна в основном на объектах.