Смысл в том, чтобы отделить логику дисплея от остальной части кода. На любом сложном сайте вы будете иметь код, смешанный с вашим HTML, но код должен быть только для отображения. Он не должен делать никаких сложных вычислений.
Например, шаблоны будут содержать циклы и условные выражения. Кроме того, у вас, вероятно, будет библиотека специфических для HTML процедур, например, распечатка списка
на основе объекта списка.
Представьте, что вы пишете приложение с двумя режимами вывода: HTML и что-то еще. Как бы вы написали это, чтобы избежать дублирования кода? Это, вероятно, укажет вам правильное направление.