Currently PoseBone.children is implemented by a linear scan of
the list of armature bones. This is doubly inefficient, since
not only is it scanning all bones, the obj.data.bones list
is actually synthetic and must be produced by a recursive scan.
Instead, use the Bone.children native RNA property. Also, it
isn't clear why the code was returning a tuple instead of list.