Sorry for not being clearer, I'll expand on the first example. Here's the code that will show an incorrect warning:
```
switch(a) {
case 1: if (a) { throw new Exception(); } else { throw new Exception(); }
case 2: break;
}
```
The rule will warn that case 1 has an uncommented fall through, even though it doesn't, since every code branch throws (or returns, or breaks, doesn't matter). I'm not 100% sure it's worth fixing, since it will complicate code quite a lot, and it's an edge case. But only checking last consequent isn't 100% correct, because switch cases can contain logic.
About second example, yes, you are correct, no-unreachable will catch it, if it's on, but it will also display no-fallthrough error, which is incorrect (given that there are more then one case in that switch).