Thank you Justin for covering this topic. I agree with you that a good development starts with a good plan for the future, but sometimes, no matter how good was your initial plan, you have to change something due to user feedback for example or for adding an enhancement in your block/plugin. I think developers have the right to update/upgrade their blocks/plugins/modules and there should be a consistent (and documented) way to "do it right" by preserving what was already done by the user and reflecting the changes in the right way if possible.