чем плохая? довольно частая практика, потому что фронт уже сам может решать какие текстовки и как обрабатывать такие ситуации, не опираясь на реализацию бэка, например есть два фронта и 1 сторонний сервис которые пользуются апи твоего бэка и у всех у них разное поведение в твоей ситуации, у одного одна текстовка, у другого другая, а у сервиса вообще текстовки никакие не нужны и намного удобнее по коду определить, что случилось
по двум причинам плохая:
1. если не давать никакого намёка с сервера почему твой запрос провален, то на фронте нужно написать больше лишнего кода и хранить сообщения об ошибке на нём.
2. нужно адаптировать api приложения, чтобы им было удобно пользоваться не только через UI в странице браузера, но и другие http клиенты, как, например, через тот же curl. UI - это инструмент для обращения к api, но фронт не должен черезчур принимать на себя ответственность за его работу.