Porque los elementos candy no están bajo el mismo nodo padre, así que no son nodos 'hermanos'.
Una posible solución podría ser:
Código PHP:
Ver original$obj = new SimpleXMLElement($xml);
foreach($obj->xpath('//candy[not(@att=ancestor::bar/preceding-sibling::bar/descendant::candy/@att)]/@att') as $v){
echo $v->att . '<br />';
}