хорошо спроектированная система, как ты предлаегаешь, даже если она будет спроектирована по каким то иным принципам при этом удовлетворяющим целям всегда будет давать такой ответ за ограниченное время. проблема в том, что это просто не возможно. ты предлагеашь подход с проектированием на перед всего до мелочей(через интерфейсы и соответственно контракты) это не только "надо подумать" это надо еще сделать и что бы оно работало быстро и что бы... в общем этого что бы много бывает. особенно начнутся проблемы над компксными данными, вдля которых сложно выделить хорошие абстракции. собственно абстракции и то, что они прямо завязаны на мышление разработчика это самое слабое место этой теории. твое и мое виденьего одного и того же объекта сильно разняться, мы оба выделим в какой то момент разные абстракции, они обе будут для нас хороши, но ужасны для другого. мне сложно привести сейчас какой то простой пример, но уверен, что он существует. мы как минимум можем допустить его существование и тогда стройная взаимозаменяемая система с использованием всех благородных принципев резко оказывается довольно сложно управляемой машиной. начинают течь абстракции в том смысле что происходит логический взрыв роста, это не избежно я бы даже сказал основываясь на том, что с течением времени любая программа которая претендует на моделирование действительности сталкивается с тем, что реальность слишком сложна, для упоковывания в байтики на диске на данный момент. это в свою очередь приводит к двойной работе - пока я рефакторю то, что наколякал Вася(я на самом деле врят ли буду рефактироить а как нибудь поверх впилю), ты в свою очередь будешь выделять абстракции.
что то, что это на мой взгляд одно и тоже, толкьо ментальных сил ты потратил больше, а я меньше