It seems ok that the ec_indexes are not set for the top-level set RelOptInfo as get_eclass_for_sort_expr() does not make use of ec_indexes while searching for an existing EquivalenceClass. Maybe we should fix this varno == 0 hack and adjust get_eclass_for_sort_expr() so that it makes use of the ec_indexes.
It's possible to see this happen with a query such as:
SELECT oid FROM pg_class UNION SELECT oid FROM pg_class ORDER BY oid;
I see what you said. Yeah, there might be some optimization possibilities in this area. And I agree that this should not be a blocker in pushing this patch.
I didn't see that as a reason not to push this patch as this occurs both with and without this change, so I've now pushed this patch.