В сообществе, вероятно, много людей, которые не согласны со мной, но вот как я обычно думаю об этом. Если то, что вам нужно сделать, связано с выводом на экран, и если имеет смысл «обернуть» это вокруг какого-то другого кода или текста, тогда может потребоваться специальный тег. Во всех остальных случаях UDF работает нормально и в целом лучше. Тем не менее, за почти 8 лет разработки CF я действительно никогда не сталкивался с очень веской причиной для создания собственного тега. Я не говорю, что причины не существуют, но я бы сказал, что они редки.
Если у вас очень длинный UDF, можно ли предположить, что это то, что вы выводите на экран, вызывая этот UDF (на самом деле я не возвращаю значение, которое я имею в виду)? Я бы подумал разбить этот UDF на более мелкие, более управляемые части, если бы это имело смысл, но, как вы намекаете, в конечном итоге важно то, что наиболее читабельно для вас, вашей команды и тех, кто может прийти за вами.
Обновление: из любопытства, на какую книгу CFWACK вы ссылаетесь (версия и том) и на какую страницу?