Miners focusing in fees is kind if stupid at this point. For the $50 they get in fees they really muck with the user experience of Bitcoin...making the average user unhappy and making the average usefulness of Bitcoin less.
Some theoretical question. Let's assume I'm a miner. A rich and altruistic one. Then I do not care that much about mined bitcoins and don't care of costs of running my miners. I have some reasonable (but not extreme) hashing power, let's say 500 Ghash/s. Is it technically possible to write mining software only accepting transactions
without fees? Would my hashpower help with propagating such transactions?
A miner can accept whatever valid transactions they want - from zero or up to the block size limit. Some pools have been generating blocks with no transactions, others in the middle, others larger, close to the limit. Likewise you could change the software to accept any valid transaction
only if it had no fees. But 500 Ghash/s won't find many (any?) blocks per year though, you'd need much more than that to make an impact.
With bitcoind you can control the mix between paid and free transactions. Some say the problem with making a huge, completely free block is that you run the slight risk of it becoming an orphan because of slightly longer propagation times as compared to smaller blocks.