Your issue is you are trying to work out how use to this feature as a zero based array.
EDIT (for more explanation): I have an input value from -10 to 100. I want to use this value to lookup something in a table. IN a ero indexed world I have to know what the lowest value is and subtract that from the input value to get to zero (so "another parameter to pass to function").
With an arbitrary start index the array is just indexed from the lowest value (-10). There is nothing more needing to be passed in.
You might want the element at "position" 0 though (which with the origin at -2 would be the 3rd element). E.g. treat the array index as a coordinate in a 1D coordinate system with user-defined origin.
Now to get the 3rd element from array, you have to know the start index, so another parameter to pass to function.