I had the same question/concern not too long ago.
Basically, at some point, we'll see people move from using a normal client to using a chainless client. The chainless or lite client would connect to one or more nodes to find and verify their account balances, etc.
Most of the code already exists to utilize a lite client. It's just a matter of implementing the final pieces now.
I assume that at this point main chain processing would be done by 'super-nodes' of some sort? It still seems like larger and larger data centers would be required to process millions of transactions quickly in the face of non-stop growth of the chain. I'm ignorant of the math behind it, but is there some way to trim or 'age out' ancient blocks without compromising the entire chain?
Think of the millions of transactions per day handled by MasterCard/Visa/Etc, on ecommerce sites like Amazon, eBay, etc. That would lead to exponential (i.e. block^2) growth over time and doesn't seem sustainable on a world-use scale.