I disagree that those goals are mutually exclusive but we have to be cognizant of the current state of the ecosystem and the impact of source breakage.
If we introduce this new language feature a new package or any package without a public enum can turn this feature on and start declaring public enumerations that are extensible by default. For such packages this new language feature aligns both language dialects.
For existing packages with existing public enumerations I strongly believe that those libraries must continue to treat the public enums as effectively @frozen until they actively want to break API and release a new SemVer major.
I think we agree here. If a module wants to introduce a new case then it's best to break everything at once and change the behaviour for all public enumerations at the same time. I would advise any maintainer to audit all their enums before a new major and decide on a case-by-case basis if an enum should be extensible or not.
Importantly, we have a huge range of packages that rarely release new majors and actively try to avoid new majors. Packages such as swift-collections or swift-nio fall into this category. If such packages would release a new major it would effectively split the ecosystem until all upstream packages have adopted the new major. Such packages may still want to declare new public extensible enumerations. The proposed migration path with enabling the language feature and annotating existing enumerations with @frozen allows exactly that.