For the most part, I feel pickByUID can be completely avoided by other events instead of using a function. I struggle to think of a case where pickByUID is necessary. Most animations can be determined by collisions, keypresses, or data values(health,stamina, etc). And a similar reasoning goes with many other concepts. Most, if not all pickByUID cases can be avoided altogether.
My thoughts on object id's
I would imagine they are sorted at O(n log n) merge sorted, heap sorted, or something similar. in which case finding and picking the correct uID would be rather quick. Although a bubble sort or insert honestly wouldn't be bad either O(n^2).
If objects are not sorted though and construct is using something linear, I can see how we might come across an issue. An easy way to test this would be creating a project with a very large amount of objects then time how long it takes to get the first object and last object.
Do this about 3 times with different object counts, and we should be able to tell if it is linear or not.
Unless Ashley wants to tell us if object id's are sorted/picked faster than that