Smart contracts are pointless since you need trust anyway to deal with real-world assets. Nobody would rather trade in a p2p system instead of a "real" exchange either.
Overengineering in Ethereum is rampant too, as it's trying -and failing- to definitively work around Bitcoin shortcomings by significantly increasing complexity without good reason. They're also reimplementing it on several programming languages, without code reuse from Bitcoin or any other related technology either.