Is anyone listening?
There is nothing wrong with the code, there is no bug. You simply do not understand how it works. I provided a few links to some code which clearly shows that one group can be a member of another group. You may need a new rel_type, but this is by design, not due to some oversite. I think I made a statement here or on another thread that you could spend a few weeks on this code to figure it out, then you would decide nothing needs changing. Ignorance of design is not a bug. At any rate, at some point you will have to understand a relational segment, and write a few pl statements to set things up. This is what customization is all about. That is why we have a package system, etc.
In case it hasn't sunk in yet: how do you expect a group to have the exact same relationship type to another group as a person would have? You can't, so you need a new type of relationship.