Solidity no es de ninguna manera un lenguaje perfecto, pero la mayoría de estas quejas son aplicables a cualquier lenguaje de programación de contratos inteligentes. Siempre puedes escribir código ineficiente. Siempre puedes introducir muy fácilmente vulnerabilidades críticas. No culpes a la varita, culpa al mago.