One common source of blocks with no successors is calls to noreturn functions; we want to preserve pristine registers in case the call throws an exception.
The whole pristine register thing is messy (it would be better if PEI marked liveness explicitly in the MIR), but this fills a hole in the model for now.