Proposal: abstract class implementing sealed interface, relaxing the rules

As to @PublishedApi, if an abstract class has a constructor that is either public or @PublishedApi, it is accessible from other modules, which means that they can subclass it. As such, the subclasses that the compiler can find (those in the current module) can’t be guaranteed to be the only ones, which wouldn’t allow for an exhaustive when without an else branch.
As to your first point, well, I' interfaces could be sealed as well, so I unnecessarily restricted them.
As for your prior post (which you linked), P1 is already part of my proposal. P2, why? P3, also, why? As to P3 specifically, I think an abstract class should be part of the sealed taxonomy of the sealed class it inherits from, but you can instead choose to check for all its subclasses in a when, given the last main point in my proposal, which basically makes abstract classes sealed if they can’t be inherited from from within other modules.