I had been wondering about asking Kovid if he would be interested in offering an optional "def uninstall(self)" function or similar as part of the plugin API, giving plugins an opportunity to implement their own cleanup. As he said above there is no way Calibre can "automatically" do anything as we have such freedom to do what we like within a plugin... mwah hah haaa...
Why I hadn't as yet at least asked was that it is possible that users seeing a new version of a plugin erroneously think that they need to uninstall the old one first. That would of course make them lose all their settings.
Either way the issue can be resolved if with sufficient documentation if the users will read it - such as telling them to go to the config plugins directory and delete the .JSON file if it bothers them.