The problem with smart contracts is that they are only 100% trustless as long as all the input data is already present on the blockchain.
Even something banally simple as "if such and such win the world cup deposit earnings there" cannot be 100% trustless. How does one overcome this problem?
I don't think smart contracts can overcome this problem while remaining 100% trustless.