OK, I'll try to make it a little clearer...
The proxy is FIFO as long as the client is requesting the same size block as the next block in line.
Suppose my pproxy is holding the following size keys...
8
16
12
4
32
Now, suppose a client connects and asks for a size 32 block. The proxy is going to look down through its block list. It will skip the first 4 blocks and grab the 32 size block. But, then say a client connects and asks for a size 8 block. It will grab the first size 8 block it can find.
To speed up the proxy, it only looks at about the first 32 WU in its keyspace. If it searched the entire list it has for every request, it could ridiculously slow down the proxy.
Also, if someone requests a size 8 for instance, and only size 16 and bigger are available, the pproxy will "chop" a bigger unit into multiple smaller units and send one of the smaller units. That is how defragmentation happens and why sometimes the key servers only seem to have little tiny blocks.
So, in conclusion, the pproxy is FIFO, but it a modified FIFO. It adds a little intelligence to try and match the unit size to what was requested...
I hope this makes it a little clearer,
JHutch