It should be easy to construct a language-switch page that redirects to the page it was referenced from with a different language prefix, possibly making it unnecessary to do relative links between different languages.
Some random questions / remarks:
Are you planning to enable both language _or_ locale information in the smart url system, e.g. by supporting both the urls /en/bboard/foo and /en-gb/bboard/foo? (I hope this is the correct distinction between the meaning of the words language and locale)
If yes then I'd like to vote for the /en-gb/ syntax instead of the more common /en_GB/, just for aesthetic reasons and in order to conform with the URL style of the rest of openacs.
When working on acs-lang, did you base your work on gp-lang from greenpeace, and if yes did you consider splitting the key into two separate fields in the database? As far as I remember the new style message keys introduced in gp-lang have always two parts, and it occured to me that having two separate fields would make a lot of operations on the messages easier (this is purely theoretical though).