> Because code reuse is hard. > humans are yet not smart enough to properly reuse code
All of these difficulties you outline are because program designs cater to the human developer experience over the machine.
If this weren't the case Python wouldn't exist because it's clearly not made with mechanical sympathy in mind. Dynamic languages as a whole would probably not exist.
It's because humans will never agree with eachother or with machines and that's what has led us to the proliferation of complexity and lack of reuse we see everywhere.