I think he's saying that files skipped with DoNotVacate should not be marked as processed. This way, files in freespace don't need to be vacated and then move into the correct zone (2 moves), they can be moved straight from the freespace zone into the zone it should be in.
that's almost what I mean,
an example because it seems I can't explain it clearly

:
fragmented files:
AABCBA EE CDFFD sort by name with ABC in zone 1 and DEF in zone 2 with free space between the zones
with DoNotVacate it does:
first zone sort:
AAABBCC EE DFFD
going to second zone with DoNotVacate (EE isn't moved, that is the intention):
AAABBCC EE DFFD
second zone sort:
AAABBCC
EE DDFF (EE isn't moved to the zone, it stays in the free space)
only the movement of the letters:
AABCBA EE CDFFD
AAABBCC EE DFFD
AAABBCC
EE DDFF
what I think it should do:
AABCBA EE CDFFD
first zone sort:
AAABBCC EE DFFD
going to second zone with DoNotVacate (EE isn't moved, that is the intention):
AAABBCC EE DFFD
second zone sort:
AAABBCC DD
EEFF
only the movement of the letters:
AABCBA EE CDFFD
AAABBCC EE DFFD
AAABBCC DD
EEFF
hopefully you'll understand what I mean now :s