Thanks for confirming.
Here are a few more examples that also work:
with i(x) as (values (1::int)) select x from (select x from i union all select 3::int) b order by x desc limit 1;
with i(x) as (values (1::int)) select max(x) from (select x from i union select 3::int) b;
It also works with EXCEPT or INTERSECT, both with or without ALL.
The UNION ALL version fails with MIN and MAX but it works with all other aggregates that I have tested.