No, non esiste alcuna condizione in base alla quale i set di risultati saranno diversi.
Ma la tua ipotesi "a.id = b.id(+)
non ha significato" non è corretto al 100%. ha un significato, perché definisce il join, altrimenti sarebbe un prodotto cartesiano di aeb con tutte le righe da aeb.name ='XYZ'.
Ciò che non ha effetto è il (+)
, perché l'affermazione è "semanticamente" errata. Non ha senso unire all'esterno su id ma unire su nome.
Di solito si vuole qualcosa del genere:
select * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';
Breve esempio su http://www.sqlfiddle.com/#!4/d19b4/ 15