O Solidity não é de forma alguma uma linguagem perfeita, mas a maioria dessas reclamações é aplicável a todas as linguagens de programação de contratos inteligentes. Você sempre pode escrever código ineficiente. Você sempre pode introduzir vulnerabilidades críticas com muita facilidade. Não culpe a varinha, culpe o bruxo.