Results are not necessarily dispatched one at a time. Instead, each participant host maintains an estimate of the amount of work remaining (i.e. the time until one of its processors will be idle). Each host also has two scheduling parameters, the high-water mark and the low-water mark (these are part of the host's "preferences", discussed later).
Normally the work remaining is between the high- and low-water marks. When the work remaining reaches the low-water mark, the core client contacts one or more scheduling servers, and attempts to get enough work to exceed the high-water mark. The scheduling server sends a maximum of four weeks of work. If a work unit is not feasible for a host because it consumes too many system resources, the scheduling server will not send that work unit.
The amount of work (measured in FP/int ops) sent in a single scheduling RPC can be limited by the project, on a per-application basis.
This scheme allows hosts that are sporadically connected (because they're portable or have modem-based connections) to avoid becoming idle due to lack of work.
To do: per-workunit flag saying to return the result ASAP?