Yes, I missed my "not". If invalid indexes are accepted, then it would violate the `indexOf+startIndex` and `indexOf+Slice` equivalence:

>1.If `s[startIdx .. $].indexOf(c, cs)` returns `-1`, then `s.indexOf(c, startIdx, cs)` also returns `-1`;
>2.Otherwise, `s.indexOf(c, startIdx, cs)` returns `startIdx + s[startIdx .. $].indexOf(c, cs)`.

Since one would return `-1`, whereas the other would `RangeError`. Doesn't feel right.