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