The point I was trying to make, which apparently I didn't make well, is that range checking should only be used as a debugging aid and only when it may be helpful and not normally be enabled during development.
That eliminates the need for directives to turn it off (because it's normally off.)
But the point is
if you enable range checking then you want to deal with the problem you want to tackle and not with potential false positives. Thus explicitly disabling of range checks for selected parts where one knows that a range check
would trigger, but where it is a false positive is part of "defensive programming" in my opinion.
Also I don't agree that these checks should be off during development. They should be off for the final release, yes, but during development they can catch errors that would otherwise manifest as bugs (for the compiler itself these checks have already revealed quite a bunch during development before even comitting).