In sort_inner_and_outer, we create mergejoin join paths by explicitly sorting both relations on each possible ordering of the available mergejoin clauses. However, if there are no available mergejoin clauses, we can skip this process entirely. It seems that this is a relatively common scenario. Checking the regression tests I noticed that there are a lot of cases where we would arrive here with an empty mergeclause_list.
FWIW, during the run of the core regression tests, I found that we enter sort_inner_and_outer with an empty mergeclause_list a total of 11064 times. Out of these occurrences, there are 293 instances where the join type is JOIN_UNIQUE_OUTER, indicating the need to create a UniquePath for the outer path. Similarly, there are also 293 instances where the join type is JOIN_UNIQUE_INNER, indicating the need to create a UniquePath for the inner path.
Quickly looking at the function, the patch would make it more apparent that the function is a noop when mergeclause_list is empty. I haven't looked closely to see if creating unique path nonetheless is useful somewhere else. Please add to the next commitfest. If the patch shows some measurable performance improvement, it would become more attractive.