Some selection operators use something like DEG_id_tag_update(obedit->data, DEG_TAG_SELECT_UPDATE) and others don’t.
So is it better to aways update the objects if all that changed in them is the number of selected vertices/edges/etc…? I don’t see how a parent object can be affected by changing the selection on the child object…
Objects should always be updated this way when selection changes. DEG_TAG_SELECT_UPDATE doesn’t trigger e.g. re-evaluation of modifiers, but it is needed for updating drawing caches for example, which is also handled through the dependency graph.