The "recreate initial instances" action was created years ago as a result of numerous discussions here on the forums about how to best handle open-world metroidvania style games without every single room being in its own layout.
I've used it extensively for both open-world and linear games alike, and it's one of my all-time favorite features Construct has to offer (I know right?)
However, one major drawback with using it is that pre-placed objects (as in, objects placed in the layout editor that are expected to have a static UID) which are destroyed and recreated do not preserve their original UID, making it impossible to reference them for the purpose of linking/pairing objects, save data, loading object states, etc.
I've resorted to making my own ID system using "for each (ordered)" which has its own drawbacks (I only get IDs at runtime) and then using manually set IDs / tags using private variables when this won't suffice.
All that said, would it be possible to somehow reserve UIDs so that pre-placed objects which are destroyed and recreated using "recreate intial instances" get the UID they started with?