Layer 2s are definitely possible, especially with FCMPs and scriptless scripts, but personally I think that Layer 2s are overrated. Most of the uses of Layer 2s, namely programmability, subscription payments, bulk payments to multiple parties, atomic swaps, etc could easily be accomplished using simple programmability with no on chain presence. If I have a contract with you or if I am in a P2P trade with you, why would I have to tell the rest of the world and record that fact forever on a blockchain for others to data harvest? If someone designed a simple UTXO scripting language, it could work with any blockchain and be run on any chain, All that would need to happen is that you'd have to run it in the background on your smart phone or home computer. It could even handle general atomic swaps if both parties run the atomic swap script and have the necessary synchronization checkpoints in place. They key advantage of this approach compared to the L2 approach is that L2s are generally single asset, require extra payments, involve third parties, and out of necessity are slower moving because once a contract is on chain, you have to manage it forever so change is cautious. With offchain scripting, there's little risk to rapid evolution and expaned flexibility, multichain support is easy and there can be multiple approaches or types of scripting allowed. You could have an offchain EVM, I could use Rust scripting, and someone else could use visual scripting and we'd all be able to collaborate. All that needs to be done is to build it for the key POW chains and ETH and there will be enough interest for other chains to want to be involved and add their own scripts.