If you want to freeze your view based on a given intermediate (or initial top) block, all you do is subscribe to reorgs, and when you get one you know if any past query has been invalidated. You can base this strictly on the fork height (depth) - or you can compare block hashes from the reorg.
(edited)