The canonical URL used for a question currently includes the title, e.g.
That means if the title of the question ever changed, the canonical URL would change... which doesn't feel quite right to me. It feels a bit like trying to change a primary key.
Wouldn't it make more sense to use the non-changing part as the canonical URL, like this?
That way however often the title is changed, search engines will always see the same URL as the canonical way of addressing the same question. Admittedly that URL won't have any keyword matches in, but I would hope that matches in other URLs which have the same canonical URL are taken into consideration. (Before anyone asks, I've never seen any of the Google indexing code, and would certainly refuse to answer any questions on it even if I could.)
The same suggestion applies for user pages of course.
EDIT: I emailed Matt Cutts about this, and here's his reply (with permission):
Tough call. Normally we'd say to use rel=canonical to prune out any unneeded parameters. In this case, that would prune out the keywords. Dropping the keywords is cleaner from a theoretic standpoint, but standardizing on the url with the keywords would work better for SEO and probably for user clicks. It can work either way. As long as the keywords/title are almost always unchanging, I'd probably recommend the latter. But if the title changes a fair fraction of the time, then it might be better to stick with the numeric identifier alone.
The ideal case would if the title words were the key, not the numeric number. That's what WordPress can do and that's what I do on my blog, for example, e.g. http://www.mattcutts.com/blog/detect-page-changes/ .
So I guess it depends on how often the title changes - in my experience the title may often change within the first hour (while the question is being edited) but not after that. Changing the canonical URL based on time would be somewhat strange though :)