что-то мне не удалось получить в классе никакой путаницы, дает ровно то, что спрашиваем:

Код AS3:
private var id:String = "prop";
private function test():void
{
var id:String = "var";
var xml:XML = <a>
<b id="prop"/>
<b id="var"/>
<b id="node"><id>node</id></b>
</a>;
trace(xml.b.(@id == this.id).toXMLString());//<b id="prop"/>
trace(xml.b.(@id == id).toXMLString());//<b id="var"/>
trace(xml.b.(@id == valueOf().id).toXMLString());//<b id="node">..
}
upd:
это если компилить mxmlc
проверил с CS: там все так как и обсуждалось -локальная с переменная с чилдом в одной куче,
вобщем лишний повод полумать стоит ли компилить что-нибудь в CS