Sanes: как правило написать решение под конкретную задачу (на базе готовых библиотек) выходит дешевле (в плане сопровождения и поддержки решения) чем использование готовых универсальных инструментов.
дешево ничего не делать. CMS выгодно использовать тогда, когда под рукой нет программистов. В остальном оно обычно только кажется как "берем и юзаем". А на самом деле даже простые задачи частенько требуют напильника.
Иван Кондратьев: да, таким образом вы смешиваете слои. Для этой задачи Symfony предоставляет вам возможность вызывать контроллер из шаблона (HMVC типа). И это правильно.
Евгений Петров: создание ссылки на объект document не снизит производительность, будет просто две ссылки на один объект. А делают так обычно что бы аглификатор потом превратил глобальный document в локальную односимвольную переменную.
Вадим Егоров: да везде, for(;;) - бесконечный цикл с ручным выходом по условию, я уверен что можно сделать чище и проще, но мне лень вникать что вы делаете.