What we want from exhaustive pattern checks is the ability to check on all cases without falling back on the "default" case. Having the compiler warn you about missing checks is a powerful thing to have.
This is easy to achieve if you're matching on a variant type, since there's only a finite number of them.