Resposta curta ... porque o modelo orientado está frequentemente relacionado à geração de código e o código é frágil; o que precisamos é a eliminação do código e o direcionamento do modelo é certamente o caminho a percorrer.
Alguns descartaram a questão argumentando que não há martelo de ouro e que o desenvolvimento de software é inerentemente complexo.
Concordo plenamente com eles que não há martelo de ouro, mas não acho que esse modelo seja uma busca de martelos de ouro ou balas de prata!
Eu gostaria de ir mais longe com complexidade; existem dois tipos de complexidade, os quais chamo de complexidade orgânica ou natural, complexidade inerente ao negócio e a seus processos, mas também temos complexidade cerimonial.
Complexidade que se infiltra na instrução do sistema por instrução, dia após dia. A complexidade cerimonial - complexidade desnecessária - emerge essencialmente da manipulação descontrolada de código técnico com código orientado aos negócios, mas também da falta de estrutura e uniformidade no sistema.
Hoje, toda a complexidade que assombra o desenvolvimento de sistemas de informação e causa falhas e cintura é complexidade cerimonial; complexidade que pode ser eliminada.
A complexidade cerimonial é desperdício, desperdício causado pelo código, menos valor, alterar código invariante e adverso; código que deve ser reduzido ao mínimo estrito.
Como fazer isso? Fácil! Simplesmente não escreva e não gere, em primeiro lugar!
Código técnico necessário e invariável; código usado para leitura / gravação, exibição, comunicação ... É aí que os modelos entram, descrevendo a estrutura lógica dos dados - eu acrescentaria de maneira relacional - os modelos podem permitir o manuseio genérico da leitura / gravação padrão, exibição e comunicação de dados.
É como um sistema operacional, você não o reescreve para todos os projetos que usa. Portanto, o que é necessário é um mecanismo técnico que lide com aspectos invariantes de software, dado um modelo. Eu o chamo de mecanismo AaaS (Arquitetura como Serviço).
Quanto ao código desnecessário, é um código desnecessário, portanto, pode deixá-lo não escrito.
Isso nos deixa com o código necessário, orientado aos negócios, que deve ser escrito, os dados necessários, orientados aos negócios, que devem ser projetados e a interface do usuário necessária e a experiência que deve ser projetada e imaginada.
Ao eliminar o código frágil, podemos adotar a arquitetura como serviço, um novo paradigma para o desenvolvimento de software baseado muito mais em modelagem e design do que em código.