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