In reply to Jon Brown.

Plugins themselves can warn of problematic upgrades. I don't think WordPress core needs to provide additional functionality for that.

All the plugin needs to do is keep the old functionality running in a legacy mode, then only upgrade you to using the new code base when you click an upgrade button.