Maybe I'm just slow, but what was the bug in that code?
if (someBool)
return A;
...
if (!someBool)
return B;
Now - both cases are covered. The result will be A or B, never anything else. Statements after the second return are unreachable.