I was struck in Bram Cohen's interview by how much care he's taken to avoid changing vim's behavior at all, while still letting nice new features be added. In the case of vim, you have to learn about features and enable them to change the UI. That works, but it does mean that the default vim experience for a new user lacks a lot of its cool features, and it can be hard to learn about features. (I only learned that vim has persistent undo from that interview.)
Imagine if say, firefox, had a UI version number. New users get the current version, and firefox writes that to its config. So upgrades don't have to change the UI the user has gotten used to. It could prompt on upgrade to let the user try out the fresh new version, and if they don't like it, they could revert back. Even if this were only limited to the "chrome" around the web page (no need to version UI for preferences pages etc), I think it would be a nice win.
Gnome 3 sort of did this with its legacy mode, but it's a poor imitation at best of gnome 2.
I'm sure that UI developers would hate this. Having to maintain old UI code, or implement pixel-perfect imitations of it using the new UI code. Needing to worry about how to shoehorn new features into an old UI that was not designed for them. Etc.
It's much easier to put the cognitive load on the shoulders of the user, who is forced to unlearn old habits, develop new muscle memories, and generally grit their teeth and bear it until the new UI fades into the background and stops distracting.. Just in time for a UI refresh to come around!