Actually nothing as changed with SU7. I simply thought that, because SU7 offers the feature to automatically split edges when intersecting, it could cause a probleme when you transform a model interactively. What I found out, is that his feature is a property of the Line tool. In Ruby, if you create an edge that happens to intersect another one, it is not 'cut'. Same when you transform via the method entities.transform_entities, for instance by scaling or moving.
Otherwise just some clarifications on the differences between Object Reference and entityID for Sketchup entities.
Object Reference is unique at a given time, but can change whenever the model changes. Sketchup may need to reconstruct geometry and alter the objects even if they remain the same visually in the model. So Object Reference should be used for scanning a selection in one pass, but not across modifications of the model. The most obvious case where this would be a problem is when you perform an Undo.
EntityIDsurvives to changes of geometry in the model via transformation. If you scale an edge or a face, it will preserve its entityID. Same for Undo. However, it is good to keep in mind that for Components, entityID are attached to the Component DEFINITION, not to the instance. Which means that if you do a recursive test on a selection, you can come across the same entityID several times for different component instances. Indeed, you could keep track of the entityID of each of the Component Instances, which is unique by Instance. So, you may think that the hash key should then be a combination of the Instance ID and entityID. Wrong, because your instance may itself be embedded within a Component, which has itself several instances.
OK, this looks complex, but remember that the problem exists only if you explore the model recursively, that is going 'inside' components. If you keep at one level, then both Object Reference and entityID are somehow unique at a given level.
Fredo