reverse ranges like X..-Y are used in lists to represent forward ranges of the form X..list.size()-Y.
this is not the case with arrays, as these special cases return a list that match the reverse range.
this can easily be tested with this snippet
which currently yields
we can track this to the protected DGM.primitiveArrayGet(Object,Range) that is called from DGM.getAt(int,Range) and its siblings.
this method just iterates the range to generate the returned list, whereas the list equivalent DGM.getAt(List,Range) makes use of DGMS.subListBorders(int,Range) to detect the reverse ranges.