isn't it a bit overzealous ?
If I have
|_ cat A
|__group1
|__catB
|___group1
group1 in cat A will fail because its parent are in those of catB
or am I not understanding something ?