I just tried your example and I do see that it seems to behave a bit curiously!
I reproduce this with a simpler example:
<xh:html
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xh="http://www.w3.org/1999/xhtml"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xxf="http://orbeon.org/oxf/xml/xforms">
<xh:head>
<xf:model>
<xf:instance id="instance">
<hidden>I am supposed to be hidden!</hidden>
</xf:instance>
<xf:bind ref="instance()" relevant="false()"/>
<xf:instance id="copy-instance">
<copy/>
</xf:instance>
<xf:bind ref="instance('copy-instance')" calculate="42"/>
<xf:instance id="destination-instance">
<destination/>
</xf:instance>
<xf:insert
event="xxforms-value-changed"
observer="copy-instance"
context="instance('destination-instance')"
origin="xf:element('foo')"/>
</xf:model>
</xh:head>
<xh:body>
<xf:output ref="instance()"/>
</xh:body>
</xh:html>
I added an issue: