Yeah it's kind of a pain: why can't conditions apply to all objects that it's valid for? For me, "Pick all" doesn't really act the same as "for each object" and it's difficult to tweak the code to make it act the same along with the benefit of lower CPU usage.
"Pick all" is mainly used to reset already picked or filtered objects, example,
object A's picked, do stuff
subevent pick all objects B's, do stuff.
or
objects A's health > 50, do stuff
subevent pick all object A's, do stuff.
whereas foreach is used to effect a single instance at a time.
Also if you were to do
enemy health > 50
foreach enemy
only the enemy with health above 50 would be included in the loop. If you put the foreach at the top them all instances would be picked regardless of their health, but only the enemy with health above 50 would be effected.