No, no existe ninguna condición bajo la cual los conjuntos de resultados sean diferentes.
Pero su suposición "a.id = b.id(+)
no tiene significado" no es 100% correcto. tiene un significado, porque define la unión; de lo contrario, sería un producto cartesiano de a y b con todas las filas de a y b. nombre ='XYZ'.
Lo que no tiene efecto es el (+)
, porque la declaración es "semánticamente" incorrecta. No tiene sentido unirse externamente en id sino unirse en nombre.
Por lo general, se busca algo así:
select * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';
Breve ejemplo en http://www.sqlfiddle.com/#!4/d19b4/ 15