The time it takes to propagate large blocks is definitely a major scalability limit.
That's why the Bitcoin devs are working on invertible Bloom lookup tables. The basic idea is that all the miners already have most of the transactions that are in the block. It's possible to send a small, fixed amount of information, that lets them reconstruct the entire block from the fixed-size block plus the transactions they already have. It's ok if they're missing a few transactions. If they're missing too many transactions, they can still request a full block.
This way the network can process almost as many transactions as can fit in miners' bandwidth. Even home broadband is sufficient for VISA-scale.
That's why the Bitcoin devs are working on invertible Bloom lookup tables. The basic idea is that all the miners already have most of the transactions that are in the block. It's possible to send a small, fixed amount of information, that lets them reconstruct the entire block from the fixed-size block plus the transactions they already have. It's ok if they're missing a few transactions. If they're missing too many transactions, they can still request a full block.
This way the network can process almost as many transactions as can fit in miners' bandwidth. Even home broadband is sufficient for VISA-scale.
How IBLTs work: http://www.i-programmer.info/programming/theory/4641-the-inv...
Applied to bitcoin: https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2