2 years after the last post this may be already unnecessary, but just in case I want to say that everything works fine in 11gR2.
Seems like FULL OUTER JOIN was causing the problem.
In prior versions I experienced cases when FULL OUTER JOIN didn't work properly, though in different context.
So, hopefully, Oracle corrected something in processing FULL OUTER JOINs.