Clients do not need to keep the entire blockchain. There are going to be historical transactions that no longer have any coins associated with them. This means that clients could, today, purge a large chunk of the database.
This was mentioned in the original whitepaper:
7. Reclaiming Disk Space
Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree , with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored.