Sorry I can’t just write it right now, but I would use some SilverBullet API and traverse the files for links and fix them this way. I used to do this kind of stuff before V2, I’m not sure what the tools are now.
However:
If the links could work with subpaths in general, you could trivially share content between a private space and a public subset served from a folder by another instance - public but read only.
Overdone UX for compromise:
Now we have blue links - exists, red - missing, maybe we could add yellow for inexact match. After clicking such link we could have a dialog:
Link [[bar]] on page “foo/abc” resolved to “foo/bar”, would you like to update the link to fix Mentions?
OK | Cancel | Don’t ask again