you are right, I just double checked, it's not allowed to pick any other choice.
The issue is that we are maintaining an arbitrary precision library. We provide a method that returns a range of bits, and a method that returns a single bit. The method that returns a range of bits, when used to pick a single bit, was behaving much better than the method that returns a single bit. The reason is the method that returns a single bit uses bool, while the other one stay in the realm of the library (aka. returns an arbitrary precision integer range).
It's not the first time we see poor behavior from C++ native types, we should have expected it... (in general, we should move away from integral types smaller than int to avoid those pesky integer conversion/promotion)