It's a common practice to regularly disable all plugins to check something and then activate them back. In my experience all plugins drop their custom data on uninstall only as it's annoying to have to enter all options all over again after a re-activation.
Proposal is using a separate callback for uninstall and just flushing the caps on deactivation.
Persist options on deactivation, drop only on uninstall
nice and now a better code. thanks a lot.