Which leaves the smallest pool of unconfirmed transaction
Nice idea but the pool of unconfirmed transactions is not a global constant so this cannot possibly work.
Why would they have to work off a global pool?
Wouldn't this work fine if each miner evaluated according to their local pool? When calculating the size of the pool, you get an integer, not a list... no?