No doubt, Ethereum has upped the sophistication of what can be coded on a blockchain. But there remains an inherent tension between allowing complex coding onto a blockchain, and risking allowing systemic bugs onto the ledger, which, due to the immutable nature of the data stored, are very difficult to fix.
Overcoming that need for technical conservatism remains an obstacle to the wider adoption of smart contracts for practical applications.