> Stacktrace for compilation errors make those checks redundant, which means it's a waste of LoC and compilation time to do them.

The long and not terribly informative pile of junk that leads somewhere into the standard library is not good enough IMHO. But since we've

@CyberShadow I understand that "does the function always throw?" is something compiler won't tell us. I just see that in 90% of cases where you want void delegate that throws is in default/catch all .
For everything else we just hide a  subtle bug that depends on conditional execution, requiring user to thoroughly unittest his usage of regexSwitch to make sure that all delegates have proper return types.

I simply do not like the conditional aspect of it - if the code happens to match at run-time then we test that the handler was correct to begin with. Kind of backwards but I guess we are stuck with it.