It's a bug with toplevel, which ChatFrame1 has (and ChatFrame1EditBox, but the parent is the culprit with this bug).
Code:
<Ui>
<Button name="StrataParent" toplevel="true" frameStrata="MEDIUM" movable="true" parent="UIParent">
<Size x="100" y="100"/>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<NormalTexture file="Interface\Icons\WoW_Token01"/>
<Frames>
<Button name="StrataChild" frameStrata="HIGH">
<Size x="80" y="80"/>
<Anchors>
<Anchor point="CENTER" relativePoint="RIGHT"/>
</Anchors>
<NormalTexture file="Interface\Icons\PetJournalPortrait"/>
</Button>
</Frames>
<Scripts>
<OnMouseDown>
self:StartMoving()
</OnMouseDown>
<OnMouseUp>
self:StopMovingOrSizing()
</OnMouseUp>
</Scripts>
</Button>
</Ui>
On live clients the child frame will stay above other toplevel "MEDIUM"-strata frames (like bags) when bags are brought to the front.
On beta client the child frame will drop below other toplevel "MEDIUM"-strata frames when bags are brought to the front, even after a SetFrameStrata to "HIGH" or "DIALOG".