When a page is deleted, the revision.rev_parent_id field is saved as archive.ar_parent_id for all revisions when they are moved from revision into archive. But when a page is undeleted, each rev_parent_id is set to 0 regardless of the ar_parent_id value so there is loss of information.
There was T30553 about the problem but it seems that only half of it actually happened?!
Edit: Although I still don't see any code which would explicitly handle ar_parent_id when undeleting, it seems to be a problem of the API only, see the comment below.