Да, я видел, что многие люди делают это, к сожалению. Хотя ты прав: это мерзко.
Обычно проблемы разделения слоев возникают, когда два смежных слоя смешиваются - вы получаете бизнес-логику на уровне базы данных или логику представления на бизнес-уровне. Но это полностью пропускает слой, откладывая мили на стороне пользователя от того места, где он находится! Это неизбежный ужас.
Если негодяи не убеждены в таких мольбах о здравомыслии, вы можете поймать их по соображениям безопасности. Функциональность уровня базы данных в хранимых процедурах вряд ли знает, как экранировать текст для вывода в HTML или JS-string-literal, что приводит к очень вероятным хакерским инъекциям, приводящим к атакам XSS. Например, если пользователь называет себя «Brian von steal (document.cookie) » и это грубо объединяется в результат HTML хранимой процедуры ...