Ну вообще-то приладка к шаблонизатору кеширования - это сложноподдерживамое решение, если сравнивать десятки мини-кешей-блоков в шаблоне с централизованным кешированием в одной точке.
Никто не говорит, что TTL - это плохо, часто это даже нужно. Но вот когда у нас есть нестабильная новостная лента, которая может выдать 10 новостей за час, а может и без обновлений несколько часов простоять - тут TTL уже совсем не то, что нужно. Думаю, с этим у нас разногласий нет.
Теперь, если в проекте разные типы данных, одни из которых допускают запаздывание, а другие - нет, то мы что - создадим разные кеши? Нет. Вот и получается, что такое кеширование - это частный случай когда на сайте только данные, допускающие запаздывание. Но даже тогда я бы выбрал кеширование данных - причины описавал выше. Просто была бы создана облеченная прослойка с тем же TTL но потенциалом доработки в систему с контролем актуальности. А вот блочное кеширование в шаблонизаторе гораздо сложнее доработать будет.
Именно на основе этих размышлений напрашивается вывод, что такое кеширование - это костыль. Ибо быстро реализуемое но сложноподдерживаемое (не расширяемое, децентрализованное - поди потом разберись где в каких шаблонах кто понаставил кешей с каким TTL). Кстати, почему это костыль - нелогичное? Как раз самое логичное исходя из бизнес задачи "как можно быстрее реализовать, а потом уже думать, как сделать правильнее"
И, к слову, если говорить о мало-мальско серьезном сайте, типа социалок с кучей пользователей, то это по определению уже своя серверная база, а значит кеширование просто нужно уносить на фронт-энд.