By asking a CPU Miner (or any miner that isn't at least some X% of the network's total power) to process the entire getwork solution space before performing another GetWork, you are dooming that Miner to a very significant percentage of Stale shares.
Yup, you're right. CPU miners are doomed either way. Either they ask for new work so fast that they don't even have a chance at getting through 1% of a single getwork request, or they risk working too long on a getwork and the network's block count increases by one making their work stale. CPU miner's are simply too slow to be able to run at a high efficiency against any pool, or even the bitcoin network at this point. Because the average block is solved in less time than it takes on a average CPU to process even 1 getwork all the way through, it's really not worth using a CPU to mine for bitcoins at this point.
When taking GPU's vs CPU's, it's truly a night and day difference. You could take the most powerful DUAL CPU/QUAD CORE Intel server (~12,700 khash/s) and run it against a ATI 5750 card (~150,000 khash/s) and the ATI card will smoke that server hands down...we've tried.
We built and tested this the Pool with GPU's.
Could you imagine us trying to build and test a pool with CPU's?! ROFL
