• However, if our table had been a HEAP this method works nicely because the data remains with the [Page ID] and [Slot ID] for the life of the HEAP.

    That's not quite correct. Data will move in heaps and hence change page numbers. Updates to rows that cause the row to no longer fit on the page will cause it to move. When this happens a forwarding pointer is left in the original page, pointing to the new page. ALTER TABLE ... REBUILD will also renumber your pages and allocation_unit_ids.