Potential bug in propagating regions to children of LV

I have been digging through the Geant4 source code relative to Regions and LogicalVolumes. I am slightly puzzled by how and when a region is propagated to the child of a logical volume.
In particular, I consider two scenarios, in pseudo code:

Scenario 1:
create lv1
create lv2
create region1
associated lv1 with region1 (via G4LogicalVolume::SetRegion)
add lv2 as daughter to lv1 (G4LogicalVolume::AddDaughter)

As a result, lv1 and lv2 will both be associated with region1, because AddDaughter propagates the region to the daughter (see the last lines in AddDaughter)

Scenario 2:
create lv1
create lv2
create region1
add lv2 as daughter to lv1 (G4LogicalVolume::AddDaughter)
associated lv1 with region1 (via G4LogicalVolume::SetRegion)

This time, only lv1 will be associated with region1, but not lv2. This is because lv1 was not associated with a region yet when G4LogicalVolume::AddDaughter was called and G4LogicalVolume::SetRegion does not propagate the region. Or am I missing something?

In conclusion, whether or not the region is propagated depends on the order of calls to functions. More so, if a LV is first assigned to a region and then daughters are added, this LV implicitly becomes a RootLogicalVolume, although the user has never designated it as such.

Is this a wanted behavior or a bug?

If it is not a wanted behavior, I think the best way to make the code consistent would be to modify the AddDaughter method, namely:
The region should only be propagated to the new daughter of the current LV if the current LV is a RootLogicalVolume or if it is a descendant of a RootLogicalVolume.

For reference: this topic is somewhat linked to this one here:
https://geant4-forum.web.cern.ch/t/how-to-let-nested-volumes-inherit-the-world-region/2771

Background of this topic: I am involved in the development of OpenGATE, a Geant4 application, and in particular the new python-based Gate10 version. I would like to properly understand and implement Geant4’s region logic and pin point possible inconsistencies.

Looking forward to a word from the developers.