Storage (a hierarchy, in general), CPU power, and bandwidth are all potential bottlenecks and the future critical factor will depend in on the path of technological evolution which is difficult to predict. Most expect bandwidth, I believe.
Bandwidth is already a problem, because larger blocks already have a higher likelihood of being orphaned, and IMHO that's the point which makes blocksize discussion mostly hypothetical. Larger blocks are already unprofitable for miners, if they make large blocks it's out of goodwill.
Storage is the second issue, but that is fixable in the long run through pruning: no point in storing and replicating historic transactions that have long been over-confirmed. Historic transactions are irrelevant for bitcoin as a storage or value or a mean of payment, they are useful for validating, but that could be replaced by automatic check points every few months f.i., and everything historic beyond the last checkpoint could be pruned, keeping only the UTXO.