sometimes you need to be able to choose an object out of a pool of many
without being able to pick it first
I don't know what you mean by this. Is there any significant difference between "choose" and "pick" in this context?
Also, you don't need a For Each Object loop to pick by UID, you just compare the UID. For Sprite, there is a specific condition just for that under Misc. For other objects you can do a Pick By Comparison and use obj.UID as an expression.