How to check if links to related pages are still valid

If you would like to go the “URI-way”, consider this: I would try to solve this with a panel.page.update hook that checks if a URL has been changed. If it has been changed, loop through the related fields searching for the $oldPage URL and replace the matches with the new $page URL. This way your data should always be in sync, and you aren’t dependent on somebody running a plugin once in a while.

Beware for a nasty bug in some cases with hooks though.