Late to the party, but this brings up a potential footgun not discussed yet:
If the user has elected to provide a custom implementation of CaseIterable conformance, potentially reordering the cases, then it can be unexpected if Comparable is synthesized using source order, introducing two (or if RawRepresentable, potentially three) definitions of total order among cases without warning.
It may be reasonable to consider not synthesizing Comparable for enums with custom CaseIterable implementations.