Мне кажется, что 2хх и 4хх - это нормальные коды, чтобы их возвращать из апи и обрабатывать на клиенте, потому что они про клиентские ошибки и успехи. Можно и в 200 ок возвращать ошибки, но многие тулзы различают success/error ответы, что позволит чище написать обработку ответа.
3хх - перенаправление - можно использовать, если клиент умеет с ними работать, но в случае с бразуером, то браузер скорее всего перехватит и сам сделает редирект (можно это использовать, когда нужно). Кстати, интересный вопрос для меня. А можно ли не дать браузеру выполнить редирект и самому обработать ответ? 🤔
5хх - что-то пошло не так :) Никуда от них не деться, придется обрабатывать/ловить на клиенте.
1хх - никогда не приходилось вручную их ставить. Наверное, как и с 3хх, это может быть нужно в редких случаях.