If an array passed to this method contains itself, testing if it is equal to the other array may cause infinite recursion (ending in StackOverflowError), since there will always be an element of the array which is itself an array, so you'll have one more level to compare.
It may not cause an infinite recursion in all scenarios, since if, for example, the first pair of elements of the two compared arrays is not an array, and the two elements are not equal, the method can return false without ever examining the rest of the arrays.
That's probably the reason there is no defined behavior for this case, since it may not be possible to return a correct output (or even return anything at all without an exception occurring) when such an input is passed to the method.
For example :
Object[] objArr = new Object[1];
objArr[0] = objArr;
This array contains itself, so passing it to deepEquals
may cause infinite recursion.