Thanks for the replies!
I have had a bit of a play, and as suspected it is WAY faster doing it manually. I have a few hundred instanced objects and it surprisingly slow to get an array of all children and traverse through it. So much so, that there is a distinct pause in the runtime when it happens.
Having said that, it could be useful if my instanced object where made children of named null groups rather than direct children of the scene root. They would in essence be a hierarchical group...anyway an idea to play with on another day :)
For those that might be interested, here is a basic code example of what alket suggested. This will count the number of instances I have tagged with the "enemy" type metatag:
var enemy_count = 0
var children = get_parent().get_children()
for i in children:
if i.get_meta("type") == "enemy":
enemy_count += 1
print("enemy count: " + str(enemy_count))