Nein, es gibt keine Bedingung, unter der die Ergebnismengen unterschiedlich sein werden.
Aber Ihre Annahme "a.id = b.id(+)
hat keine Bedeutung" ist nicht 100 % richtig. Es hat eine Bedeutung, weil sie den Join definiert, sonst wäre dies ein kartesisches Produkt von a und b mit allen Zeilen von a und b.name ='XYZ'.
Was keine Wirkung hat, ist der (+)
, weil die Aussage "semantisch" falsch ist. Es macht keinen Sinn, sich auf die ID zu verbinden, aber auf den Namen zu verbinden.
Normalerweise wird so etwas gewünscht:
select * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';
Kurzes Beispiel unter http://www.sqlfiddle.com/#!4/d19b4/ 15