Вы очень на правильном пути с видом. Список мыслей, хотя:
Генерация представления является инкрементной. Если трафик чтения больше трафика записи, то ваши представления вообще не вызовут проблем. Люди, которые обеспокоены этим, вообще не должны быть. Ориентир: вы должны быть обеспокоены, если вы выводите сотни записей в представление без обновления.
Создание всего документа замедлит процесс. Вы должны излучать только то, что необходимо для использования вида.
Не уверен, какова будет производительность val == "% s", но не стоит слишком задумываться. Если есть массив тегов, вы должны генерировать теги. Если вы ожидаете, что массив тегов будет содержать не строки, тогда игнорируйте это.