Well, the jobs could be filtered out by the pools. The priority will go in order assuming the second rule holds true.

The extra tricky part that isn't immediately obvious is that the secondary pool will only be used if no job was found on the *first* pass through the job scan. Because the 16GB machines are being picked up by the 16gb pool, Deadline will never check the secondary pools. The issue here I think is that the scans are going depth first instead of breadth first. For example:

A BC DE F

Here, A C E are going to be checked in one pass, then B D F if the first three pools didn't work. I think what you expected was the scan to work as A B, then C D, then E F.