You don't need to store the whole block chain there are methods to prune it so to speak so that it takes up significantly less space. The Bitcoin client Multibit already does this.
As the transaction volume of the Bitcoin network picks up they can increase the block size so more transactions can be included per block. More transactions means more fees per block.
The right combination of transaction volume, block size, and Bitcoin value could certainly make mining for only transaction fees profitable.