Exactly the same can be said about the legal system. People are just a lot more used to the many existing "glitches" of the legal system in comparison to "bugs" in smart contracts.
People keep losing money making coding mistakes that even "gcc -Wall -Werror" would refuse to compile. Examples: type errors like L1 vs L2 (whatever that even means, not a crypto person), wrong number of function parameters causing some sort of currying, allowing that massive ETH heist a few weeks back.
I'm sure there are hundreds of other similar horror stories.
"-Wextra -pedantic" would protect against even more bugs.
(I'm not saying C is a reasonable choice, just that JavaScript was a laughably bad choice.)
It's a piece of code written in an esoteric programming language that even people who are experts in have trouble understanding and spotting errors in.
Compared to actual contracts which are human readable.
People are just more used to and exposed to texts written in, say, Englisch in comparison to code written in, say, Solidity.
Moreover, human languages will always be more simple at expressing human interactions than programming languages. "You pay me 2.5% of the agreed sum on the 25th of each month" will always be infinitely more understandable to an average human than whatever the implementation of that would be in Soldity.
For example, in the smart contract introduce some authorities that are allowed to block and revoke transactions for some time (if the block chain has no support for certified timestamps, use "number of new blocks mined and appended to the blockchain" as substitute).
Let the market decide what kind of protection stakeholders prefer.