Two points before I make my proposal:
1. I prefer the Frodo (Middle Earth) naming convention. It's more encyclopedia-like.
2. I stand against subpages. Having said that, I stand in support of a software solution that will translate links so people don't have to type so much.
So here's yet another proposal. (Although I haven't done anything yet, I am a registered SourceForce developer. So I'm willing to code up what I propose.)
It's a blend of ideas already presented by Uri, Magnus, and Mark.
Mine is different because I think the system should merely translate what an author has typed into what the author is presumed to have meant. This completely simplifies the wiki syntax to what we have now, but it makes it easier to create content. An acceptable balance, IMHO. Magnus has set a precedent for this with the ~~~ signature feature (however, it would be much more useful if it would expand in the preview screen). So I'm assuming that the section of the system that translates ~~~ would do these new translations.
So the elements of the changes are:
1. If the title has a parenthetical phrase, then that phrase is presumed to be the parent article. So on the Frodo (Middle Earth) page, a link typed [[/elves]] will be expanded to [[elves (Middle Earth)|elves]] when the page is saved.
2. If the Title doesn't have a parenthetical phrase, e.g. Middle Earth, then links of the form [[/elves]] are translated to [[elves (Middle Earth)|elves]] when the article is saved.
3. To make it easier to use random parethesized article names, the system could translate any link of the form
[[/name (parenthetical)]]
to
[[name (parenthetical)|name]]
It doesn't save much typing, it has a nice symmetry to the previous two translation patterns.
4. If we want to get fancy, then we can borrow from the way Perl programmers change namespaces. I'm simplifying, but basically, in Perl, typing
package "FantasyFiction";
will cause subsequent symbol lookups to happen in the FantasyFiction:: namespace.
So we could use Uri's idea of the #base pragma to cause something like this:
#base [[Fantasy Fiction]]
[[/elves]]
to be translated into this:
See also: [[Fantasy Fiction]].
[[elves (Fantasy Fiction)|elves]]
The system could remove the #base line completely instead of translating it, but I think it's useful to reflect by default that there's a relationship between the content of a give page and some other related page. After all, if the author doesn't like that behavior, he or she can simply type the links manually instead of using #base. Or the author can edit twice: the first is a major edit, and the second is a minor edit to remove the See also: line.