The purpose of the construction could be to inform the compiler of the fact that the condition is always false, so as to enable the compiler optimizer more.
Take a look at these features in C++, LLVM or Rust if you're not familiar with the concept:
* https://en.cppreference.com/w/cpp/utility/unreachable
* https://en.cppreference.com/w/cpp/language/attributes/assume
* https://en.cppreference.com/w/cpp/memory/assume_aligned
* https://llvm.org/docs/LangRef.html#unreachable-instruction
* https://llvm.org/docs/LangRef.html#llvm-assume-intrinsic
* https://doc.rust-lang.org/std/hint/fn.unreachable_unchecked....
* https://doc.rust-lang.org/std/hint/fn.assert_unchecked.html
The infinite loop is effectively an unreachable instruction (reaching it is not allowed), and an unreachable instruction behind a branch effectively becomes an assume instruction.