Earlier quoted context omitted.
I think the big reason this happens is because smart contracts are immutable at the lowlevel. Once it's declared, it's done. I think this is very good for auditability and security. But yeah, that quote is dead on. It's not quite as hot at a higher level, because things go wrong (bugs, malfeasance, mistakes, etc). I think the current lowlevel framework is fine, because it's allowing different projects to explore how…
All things considered, is this truly less complicated than a hand written handshake contract? The real solution is risk mitigation through deposits and payment plans. Put another way: how good is a smart contract if it’s easy to create a deceptive one?
But establishing agreement with another human means I have to establish a common language with them, then work out what we're agreeing to, then establish some set of mutual trust between us (usually involving some form of identity verification, even if it's a "who are you on twitter?" level of thing). And then we perpetually have to track that the other person's incentives haven't changed outside of the contract in such a way that violating it would be more profitable. The effort involved in all of that scales very poorly, especially from the service provider's perspective.
On the other hand, if someone wishes to operate in good faith, their incentive is to make the smart contract as simple as possible, and as amenable to independent verification from outside parties (as well as theorem provers).
And no one has to worry about establishing mutual trust with the other person, or that they'll just change their mind in the future. Even if a contract is upgradable, if you only choose to work with ones that are either immutable, or require a timelock / voting period before changes take effect, you (collectively all the consumers of the contract) know your margin of safety.
And that margin of safety is provided because you can trust the base layer is itself immutable and secured. Whereas with risk mitigation through bonds etc, who is the trusted third party we mutually agree to hold our deposits? how do each of us trust that third party isn't in league with one of us? (I trust the "Certified Bank of Nigeria In England", but do you?).
That's the core bit that a smart contract platform like Ethereum provides -- a base layer for establishing mutual trust in objective terms. You can build whatever manner of agreements on top of such a base layer, but if the base layer isn't there, each separate agreement (expensively) requires the two parties find some common ground.