Not weird at all. There's no need to sort as all rows match all rows with that join you've specified. Look at the join columns in the merge join () = ()
This is essentially what your query boils down to:
SELECT tblA.aa, tblb.bb
FROM tblA FULL OUTER JOIN tblB ON 1=1
For a merge join, the two inputs need to be sorted on the join column, except there is no join column, so any order whatsoever will do.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability