If your mental model is that an array is zero-indexed but circular, I think arr[-1] still is consistent with that model. If you don’t think of arrays as circular, then sure, it doesn’t make sense.
I’m still in agreement that negative indices make it more confusing than just calculating based off the length, but I get why they exist.
The mental model doesn’t really jive with circularity since arr[arr.length] is not the same as arr[0] in any language that I know of. With a circle, you would expect that arr[0], arr[length], and arr[2*length] are all identical.
I’m still in agreement that negative indices make it more confusing than just calculating based off the length, but I get why they exist.