I have a number of points beyond those below that I have not written up.
I will try to link to them from here when I have.
But for now here are several notes on the problem of upgrading the behavior of objects with long lived state.
Some thoughts on upgrades within a persistant system
Abstraction near the bottom
Experience with a persistant system
A Theory of Resets
Early Gnosis advice on upgrades
Proposal for factory support of upgrades