Это, безусловно, удобно, если у вас есть логика ветвления или длинный html, который вы хотите просто скрыть.
Предположим, вы хотите использовать стандартный форматировщик навигационных кнопок, вам нужно всего лишь изменить код в одном месте.
ИМХО, для рефакторинга это проще, для переносимости и новых членов команды, может быть, сложнее.
Вот пример кода, который я использую, чтобы проиллюстрировать это:
#macro( viewCtrlButton $butId $butText $style) ##style is optional
##configuration phase
#if ($style == "save") #set($type = "icon-buttons cat-save")
#elseif($style == "cancel") #set($type = "icon-buttons cat-cancel")
#elseif($style == "next") #set($type = "buttonz but_naviR")
#end
#if ($butId.contains("."))
#set($link = "super_link")
#else
#set($link = "submit_link")
#end
##the actual code to construct
<a id="$butId" href="#" class="$type $link">
<span> $butText </span>
</a>
#end