Wouldn’t it be clearer to never allow negative indices? It’s quite easy to generate them by mistake if you’re pulling out sub-images at random points.
It’d be clearer, but much less functional; it’s very nice to be able to refer to the boundaries of an image for e.g. masking purposes without having to manually subtract from the width and height. And we currently do that in lots of places, so I was loathe to rewrite all of that code. FWIW, this is actually a restriction from the previous behavior, which permitted negative indices for PARENT coordinates but interpreted them differently based on whether xy0 was negative (which seemed quite prone to accidental misuse to me).