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.
Miners, not developers, control Bitcoin. If the big mining farms don't want bigger blocks, there will not be bigger blocks. That's how the blockchain works - the miners are in charge. Running out of transaction capacity means transaction fees can be raised. If you run a big mining farm, that looks good.
If the blockchain TPS capacity is ever reached, (it's not even close yet) we'll probably have exchanges dealing with miners for faster transaction processing. Then demands for "net neutrality" for Bitcoin.
They might run into a public goods problem though.
Overall, if transactions are scarce, transaction fees will go up. But for any given block, if you don't include all the paying transactions, you're just leaving money on the table. Since most blocks will be produced by other people, your own personal decision won't affect the market much. You're better off taking all the transactions.
Since all miners will do the same, the fees will stay low unless transactions per block are limited by the developers.
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