Question about Stateful Smart Contracts

Say a stateful smart contract has a balance of algos. What all the possible ways to spend those algos from the contract?

So far I can only come up with inner transactions. Can algos be spent the same way they are spent from a Smart Logic Sig, meaning using the LogicSigTransaction(txn, logicsig) format or something similar?

Currently, assets or algos can only leave a smart contract with an inner tx.