I took a look at this test case and I think it's a reasonable use case. However, it's not a bug, because the linker works as designed. I've submitted SDSCM00050128 as an enhancement request to add this feature.
Abbreviated, the user wants to do this:
UNION("outer") { GROUP { } GROUP("X") { UNION { GROUP : table(tableB) { } GROUP : table(tableC) { } } .something: table(tableB), table(tableC) } }
It doesn't matter that tableB and tableC are re-used under UNION("outer"), because GROUP("X") ensures that they cannot overlap.