The rules in "6.5 Default Priority for Template Rules" do not have rules for QualifiedPatterns.
I expect that a match rule such as
((a | b) except c) | (e | f) intersect d)
will have to be treated as multiple rules:
a except c
b except c
e intersect d
f intersect d
each receiving their own priority.
It's covered by the fallback rule which says all other cases have default priority +0.5.
The question is whether we can do better than that. Making the rules smarter is not necessarily a good thing to do if it makes them less predictable.
The current rule that treats a union pattern as if there were two separate template rules with different priority is legacy. It's not obvious how to extend this idea. Logically (A intersect B) should have a priority that is higher than that of A or B, but lower than (A intersect B intersect C). I think it just gets too difficult and you have to draw the line somewhere; I think the simple guidance to users should be "for simple NodeTests, the default priority is useful; for anything else, use explicit priorities".
Thanks for the explanation.