Не, няма условие, при което резултатите ще бъдат различни.
Но вашето предположение „a.id = b.id(+)
няма значение" не е 100% правилно. То има значение, защото дефинира съединението, в противен случай това би било декартово произведение на a и b с всички редове от a и b.name ='XYZ'.
Това, което няма ефект, е (+)
, тъй като твърдението е "семантично" погрешно. Няма смисъл да се присъединявате външно по id, но да се присъединявате по име.
Обикновено се иска нещо такова:
select * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';
Кратък пример на http://www.sqlfiddle.com/#!4/d19b4/ 15