In a highly competitive market, transaction fees, and more worryingly, the network's hash/s, will converge towards zero.
This is because a miner who discovers a new block only has to pay for the cost of proof-of-work, not for the cost of bandwidth and storage associated with that block.
That cost is carried collectively by the rest of the network. Including transactions with zero or near-zero fees incurs practically no additional cost to the individual miner.
So far, I don't think anyone has come up with a solution for this tragedy of the commons.
Of course this is only true once generation of new coins reaches zero. This won't happen before next century so we've got plenty of time to fix this.