It's not a TOC situation because of the fees, as blocks go unsolved, fees accumulate, increasing incentive to solve. People need not generate at a loss for bitcoin to work. Though maybe with some definition of 'loss' some people will anyway.
Blocks will always be solved. Sometimes way too easily.
There are two cases. One is when all transactions fit in the blocks. Then there is a tragedy of the commons. Transaction fees drop towards zero and there is hardly any incentive to generate. This is the case now. Transaction fees are zero and the only reason people generate is coin creation.
The other case is when all transactions don't fit in the blocks. Then transactions will compete to get into the blocks using transaction fees. The maximum block size must be continuously adjusted to keep the transaction prices stable. The only way to change the maximum block size is through a lengthy political process of debate, decree, network fragmentation and majority agreement.
Correct me if I'm wrong here, but it is right now a very rare situation where blocks are even close to the maximum block size? In fact, on average most blocks don't even have transactions included in them at all. In other words, all they are doing at the moment is purely generating coins.
If there is a situation where there is a huge pile of transactions backing up, perhaps the ones with fees could get move to the front of the pack, so to say, but the rest would generally be cleared in subsequent blocks.
There certainly isn't anything stopping you from modifying your source code on Bitcoins and only accepting transactions with fees for at least blocks you are able to mine and create. Essentially, if you are going through the effort to generate a block, you ought to be paid for any transactions in that block, at least if you think that way. If enough people don't want to process transactions without getting paid, those without a fee simply won't get processed. It really is that simple.
For myself, I'd love to see this as a option in the User Interface itself where you could set the rules up in some way for how you would personally want to process transactions, and make it more of a market-based approach. There is room for multiple rules regarding how transactions are processed.