One of the things I've done is move my custom CSS into .css files that are per plugin, or added to extra.css
And any customization that could be one via a hook, moved into a plugin.
This resulted in my custom theme being 2 one liner template edits instead of 49.
Upgrading now means I up the files, run upgrade, revert those templates and re-apply the one liner.
The plugins do the rest.
Plugins are like. Custom header data, new navigation tabs / dropdowns, profile page tabs and updates, footer and sidebar blocks and information. etc.
An example of a one liner is the lack of a hook in pagenode_container , otherwise I would be able to wrap the output around a div with a certain size.
Anyway, more on topic..
It replaces every phrase and template that isn't customized. And it replaces every file.
So if you have a customized template, it will say: you have outdated templates (and lists them).
You will be able to revert the template and re-apply the customization.
Depending on the complexity of the theme you have it will either be short and easy or time consuming and frustrating.
All that said, I still have a customized template from the alpha build that I never updated in 1.1.0 beta 5, simply because it holds nothing crucial and it still works, it doesn't break any old or new feature. (ergo why it has low priority for me to finally update it)