For the record, the original pitch from @stephencelis did explore the consequences of SE-0155. I'm sure it's worth a re-read.
Edit: Oh, and they also thought about the funny case of Never payload
enum Bizarre {
case normal(Never)
case weird(String)
}
// Should we allow this?
let alice: Bizarre = ...
alice[keyPath: \.normal] // Or alice[case: .normal] - this is the same