Is construct allowing "Block.x" use because the parent event explicitly filters for "Block" ?
Yes.
Conditions "filters" the number of instances picked and to which the actions are applied.
As dop2000 was explaining, one instance of block is picked in event 6 and 7.
So in event 8, checking the coordinates of "Block" is only done against the coordinates of the single picked instance.
On the other hand, the family "Family1" is considered as its "own object type" in this instance, so it has no instances picked before the conditions of event 8.