If you only put the hash of the txns in block a 1MB block could have (roughly) 1,000,000 / 32 = 31250 txns (hashes) in a block. You wouldn't even need to make the blocks bigger. 1MB would be loads. The txns sent out earlier will already be stored at all the nodes, and the delay propagating them doesn't matter anywhere near as much. You only need to have them all together once every 10 mins. (you may lose the last few txns every 10 mins, but most would be there just fine)
I understand that you can run a full node pruned soon.. BUT only after you have downloaded from a non-pruned node. We need it to run without needing non-pruned nodes.
you would still need all transactions to verify balances so i dont see a benefit in only storing hashes in a block.
how are old transactions distributed?
edit: utxo is enough to verify balances but you dont see how those balances where built.