Earlier quoted context omitted.
On C UB is a property of any code, reachable or not, just like the article's references explain. Why are people fighting this? And yes, Rust is much more reasonable about it.
How do you decide if i+1 is UB or not, unless the abstract machine reaches that line with a given value of i?
If you are not satisfied, you can read the article's references (there are 2 for unreacheable code). Or any article about UB here for the last 20 years.