Actually, I don’t think it breaks the link anymore. I change slugs all the time, and WP is smart enough to tell the difference. Not sure when this changed, but I know it was just talked about at WordCamp in SF on Saturday. “It just works” was the comment.
There is a function in query.php that tries to compensate and does do a pretty good. I’ve been playing with it this morning. The system tracks old slugs in wp_postmeta under meta_key ‘_wp_old_slug’. That was much needed.