Having slept on this...
An Entity that is part of a Definition's Entities is a single 'thing'.
Instances of this Definition can be 'placed' within the Entities of a Model or even those of other Definition.
Instances are themselves 'Entities'...
These Instances are simply 'markers' and refer to the Definition - they have no 'contents' of their own.
Any properties that this Entity has [like visibility, material, layer etc] are set within the Definition's Entities and cannot be changed on an Instance by Instance basis as they don't exist.
Any Instance of the Definition containing this Entity can have individual properties [like visibility, material, layer etc] - some of these might even get reflected down the nesting - like 'material' which when changed on the Instance will affect the appearance of any contained Entities which have their material=nil, however the 'visible' property does not filter down.
Visible/hidden Entities within a Definition [that is seen as an Instance] remain visible/hidden independent of each Instance's 'visible' state - however, if the container Instance is 'hidden' then you cannot see it, and by logic you cannot see its contents - irrespective of whether or not they are visible/hidden within the Definition itself.
This is a logical setup.
Let's say you have Entity called A [an Entity is unique, but of course it might itself be just one Instance of a Definition].
'A' is within a Definition and there are 6 Instances of this Definition within an Entities set.
2 of these Instances are visible the other 4 are not.
Thus you can only 'see' 2 representations of A.
However, there are 6 representations of A 'available' in the scheme of things - so, how do you get the number of visible A's ?
Remember you can't refer to a particular A in a particular Instance because there is only one A and that's inside the Definition.
If you mined down into the contents of every Definition in the Model to find A you will eventually get just one parent Definition returned because every Entity is unique - however, if A were an Instance then finding its Definition and then that Definition's Instances would give us a list of all Instances equivalent to A - however, they are NOT A itself, but a list of Instances of A's Definition - we can't confuse Entity-A and Definition-of-Instance-A - this would just make it more complicated to find them all, but it's not impossible.
For now let's assume we have a simple Entity A, and we have its parent Definition, we can now find a list of all of that Definition's Instances, and then from this list we can get lists of all of those Instances that are visible/hidden.
Thus we can say that Entity A exists 6 times in the Entities set, that it is visible 2 time and that it is hidden 4 time, simply by looking at the lists we just made of the parent Definition's Instances visibility.
Since we know which are the Instances displaying A we can find each of their locations and thus the location of the 'ghost' of A within them, since we know where A is inside the Instance's Definition...
However, if Entity A were hidden in its Definition then it would be always hidden in every Instance we looked at, so in that case, irrespective of the containing Definition's Instance visibility, A is 'hidden' in all 6 cases even when its container is visible...
Not sure much of this is of any practical use...