I think technohog described it well. I'm thinking about push based protocol instead of current getwork, where server will send a job to client only on merkle hash change (so only few times per minute, in the worst case). But it will takes long time before it will be stable enough to switch pool to this.
Nobody who owns 1000 old computers will let them compute hashes, because thanks to hash/W ratio it is completely worthless.