Well, the intent is clear (for me): to support implementations with pointer bounds checking.
If the bounds were shrunk as a result of some cast operation, it is not possible to widen them back later.
The rules about reachability were added in P0137R1, but the motivation of such a change does not appear to be listed in the "Changes since R0" section of the paper.