Thirdly your proposal is silent about the most important sharding problem: sharding of the state
Alternatively I support sharding based on transaction hash i.e. state sharding.
It would be easy to avoid intra-shard transactions (instead of dealing with them) by requiring wallets to follow simple rules that guarantees two key points:
1- Always spend from same shard in each transaction.
2- Make transaction to fall in the same shard as inputs by using a small entropy(nonce).
Thinking of it. Yes.
It would indeed be possible to shard based on transaction hash instead of address, and guarantee shard affinity by using a small nonce. In that case, it would indeed be sub-network 12 because the tx hash starts with a 12 and not because the address starts with a 12. Sounds good to me. Adding the nonce is also a good idea (without which tx sharding would obviously not work).
See? No intra-shard transactions, no need to swaps, no headaches.
True. Your approach would be even simpler. I certainly like your simplification.