'viewselected_exec()' [which uses evaluated view layer] would query BASE_SELECTED flag, but it was not set on base_eval, but on its base_orig.
reason for this is 'ed_object_select_pick()' [or even more generally 'view3d_select_exec()'] would modify base flags [through 'ED_object_base_select()' etc], but not tag scene ID_RECALC_BASE_FLAGS.
thx @Sergey Sharybin (sergey) for hinting.
(still I am unsure how costly recalculating base flags really is, so I proposed 3 possible places for the tagging...)