The old_id revision ID key is the closest thing we have to a unique, persistent
revision identifier (though currently problematic due to not being assigned
until the next revision is saved).
Currently the old_id row identifier is discarded on deletion, and thus on
undeletion a new number must be assigned. This breaks stored links to those
A possible fix is to extend the archive table to store old_id and restore it,
however this would still break sometimes with selective restoration (see bug
507): a formerly old revision may be restored to the cur table, where it would
still lose its old_id.