Вы наверное думаете что я сторонник фильтрации перед сохранением. Нет нет, я хочу разобраться, почему многие так делают. Плюсы вашего способа я понял, хотелось бы услышать другую сторону.
Во многих php-framework'ах (kohana, yii и т.д.) у моделей есть метод filters, который фильтрует данные непосредственно перед занесением в базу. Судя по документациям и мануалам, почти все пихают туда тот же htmlspecialchars, trim, кастомные регулярные выражения.
В том то и дело, почему именно при выводе эскейпить? Если куча запросов на страницу, это может сказываться на скорости. Операция одна и та же, не проще ли один раз перед сохранением заескейпить, а потом тянуть просто переменную без обработки? Это если в двух словах.