It’s well established that humans will make programming errors, and that good language design can reduce the rate of such errors (and eliminate certain classes of errors altogether). I’m surprised you are willing to place so much blame on Solidity’s users for their mistakes when these mistakes would have be avoided with simple improvements to the language design.