I still don't understand why there are blocks with 10-20 transactions when there are 500+ transactions with fees waiting to be included. Why the hell pools don't include them?
Because larger blocks increase propagation time, increasing the risk that the pool's block ends up orphaned, decreasing the overall pay for the miners on average. No one wants to be part of a pool with a large orphan block rate.
If I was running a pool, I probably wouldn't include transactions without a fee at all. Any increase in propagation time is less potential payout for my mining minions.
Some pools don't include paid transactions coz they think they aren't paid enough
(even though the transactions are paid according to the standard client rules)
Some pools don't include free transactions.
Some solo miners don't include any transactions.
The simple thing to do is vote with your mining power.
Don't mine at a pool that is bad for BTC transaction confirms.
Luke-Jr at Eligius did this for 5 months since June (max 32 transactions per block) coz their pool is crap and gets more orphans than the other pools ... the fix was to cut down the number of transactions processed to way less than every major pool ... clearly performance and good software is not of interest to Eligius
People mining there should not. It is directly bad for BTC transaction confirms.
And since without transactions, BTC has no value at all, Eligius is bad for BTC.
Eloipool software (used by Eligius) in it's new GetBlockTemplate implementation sends out LP's with no transactions since the GetBlockTemplate makes LP's unmanageable due to the massive amount of data sent with GetBlockTemplate work (way more than even the old GetWork, often hundreds of times more)