Perhaps the rule-of-thumb for a casual GADT user is just to avoid using or-patterns.
I had a look at the discussions on GitHub (link below) regarding this issue, and could see that there are indeed implementation-related intricacies yet to be resolved.
It is surprising that such a seemingly / intuitively simple problem could have such challenging technical implications.