Ok, ran some tests and determined that the difference with the early blocks is entirely caching. The OS caches memory map between runs, and I don't yet have a reliable way to clear the cache. With previously-cached tables the performance is consistent across the block range. The preceding scenarios had both been run with caching in the early stages. In the later stages (fuller blocks) the relative benefit is practically eliminate.
(edited)