The above limitations may look very restrictive but even now by combining stateless and stateful TEAL, you can create very advanced smart contracts that can do most of what blockchains with Turing-complete languages do in practice. The only thing is that sometimes the design needs to be adapted.