Para quem trabalha com sistemas legados, poderiam realizar alguns testes Cada caso é um caso, cada linguagem é uma linguagem

Em php é possivel retornar um status code diferente de 200, e mesmo assim retornar um conteudo dentro do body de uma request

isso varia tanto de quem envia como quem recebe, por isso é necessario varios testes, mas um sistema q recebe um erro 400, e verifica no body q existe um success: false não deveria quebrar

Seria uma redundancia ter um success: false e um status code diferente de 200, sim. Porém no caso de sistemas que já estão em produção é algo que ter ajuda.