Modern browsers include a history api including pushState/popState/replaceState support. Using these apis one can dynamically alter the path portion of the address in the address bar without leaving the page. Additionally if you use replaceState you don't create side effects in forward/back history.
Using this api it's possible to make [[Wikipedia:Redirection]]'s /wiki/Redirection dynamically change to /wiki/Redirect in the user's browser.
I've been experimenting with a script to do that:
We should consider fine tuning code to do this and including it in core.
From the user perspective this would have a similar effect to using 301s. It would make end users end up copying the canonical url instead of the redirect's url.