No, the idea is anonymity. How can you trust the contract between you and some user across the world? Yes, crypto solves it. Law won’t help when someone tries to scam you across the world, at least in majority of cases.
A friend who in cybercrime talks weekly about scammers using Bitcoin ATMs and there being no way to get it back compared to traditional banking where he regularly gets victims their money back.
Crypto lets you engage in any contract you and your counterparty can codify. The reason that so many scams are run through crypto is because the vast majority of people either don't use smart contracts (in which case you're just sending your money to someone and praying), or if they do, they don't read or understand the smart contracts they're using.
The solution to this is maturity. The endgame is to be able to create smart contracts that are as readable to a layperson, if not more readable, than legal contracts. And to come up with a set of standard smart contract templates vetted by programmers, just as today we have a set of standard legal contract templates vetted by lawyers.
That, and encouraging people to actually read what they sign, whether it's a pen-and-paper signature or a cryptographic signature.
Aside from my point that most contracts can be based on highly-vetted templates, smart contracts don't need to be written in JavaScript or Rust. They can be written using little puzzle pieces that anyone can understand.