Q1 & Q2:
The way that I allow user to select a group of items using a rectangular areas is the key for your question about the hierarchy. They can be in any hierarchy, or event non-relative hierarchy. So speaking in your code term, every component in the rectangular are pivot_moudle(s).
My script (namely pcbnew_clone) will try to figure out a set of “similar” group using the help of schematic hierarchy (like the way you did - timestamp/AR) - then present to the user number of groups it found in number (with a sheet names - not sure how did I do it - it been too long for me to remember). User enter a number or a set of numbers for which channel(s) to be cloned.
In KiCad 4.0.1, I think the only way to get AR/timestamp is partially read from schematic files (Potentially kicad .net file would work too). My design were >4k Nodes, so I was make sure the script run around O(n) or O(n*ln(n)) faction.
My concept is that, user/people/me work on the board layout don’t care much about hierarchy of the schematic instead want to minimize amount of work by recognize a set of repetitive works. So clone the whole hierarchy (with multilevel) may not be necessary.
Another minor point - This is why I love KiCad - simple but flexible way cooler than using bulky Mentor Graphic.