maybe your solution is more safe, but, i think, isn't more obvious. see yourself:
my solution - unticked items will either uninstalled (if they are installed) or will stay not installed (if they are not installed). ticked items will be updated (either installed or just updated). greyed out items will be untouched. but of course i should place more info in plugin's description section.
your solution - suppose user has ticked both installed and not installed items, then has clicked 'install' button. what plugin should do with installed items? just skip them? i don't think its obvious.
i don't disregard you solution, i just want that either you convict me or you agree with me.