Even in Haskell you can fairly easily get non-reachable code:
if a == a then
...
else
-- unreachable
Combine this with the unfortunate habit (which I'm also guilty of) of allowing variables to be called a' and you'll an easy-to-miss bug.