It's not a 'flaw' it's a feature. Smart contracts don't stop you from doing anything stupid, that's not their job. Look at the thousands and thousands of token scams that keep popping up on ETH.
They don't stop coming.
People are still sending their ETH to contracts that will do nothing but take their money.
Well yeah but the whole system is flawed and that's because the idea behind it was flawed and it was also implemented with flaws!
Otherwise we have smart contracts in Bitcoin as well and the whole Bitcoin system is designed in a way to prevent users from doing stupid stuff like sending their coins to an OP_TRUE contract so that anyone can spend it.