Yeah, but ideally all of those features should be "native" features of the cryptosystem, such that they're all just as zero-trust as the core stuff the cryptosystem does with its gas currency.
The problem is that developers see "this cryptosystem supports smart contracts" and interpret it as "this is a Turing-machine substrate which I can use to deploy effectively centralized / trust-us infrastructure, but then turn around and market it as being decentralized and zero-trust."
If a cryptosystem supports "smart contracts", ideally they should be restricted to only to serve as an interface for extending the deployed cryptosystem with additional decentralized / zero-trust features. Sadly, it's impossible to have a compiler determine whether your code is decentralized / zero-trust.
The problem is that developers see "this cryptosystem supports smart contracts" and interpret it as "this is a Turing-machine substrate which I can use to deploy effectively centralized / trust-us infrastructure, but then turn around and market it as being decentralized and zero-trust."
If a cryptosystem supports "smart contracts", ideally they should be restricted to only to serve as an interface for extending the deployed cryptosystem with additional decentralized / zero-trust features. Sadly, it's impossible to have a compiler determine whether your code is decentralized / zero-trust.