Thanks a lot for checking the Fortran95/2008 standard. So if you read:
it is not necessary for a processor to evaluate all of the operands of an expression. or to evaluate entirely each operand.
if the value of the expression can be determinded otherwise
Then this does not help us. "It is not necessary to" does not mean "It is forbidden to". The statement says "it is not necessary for a processor to" however nothing prevents him from doing it if it "wants" to. gfortran flags us because we are calling the routine with an out-of-bound arrray, we were doing it although this array is not useful for our computation.I believe gfortran is correct.
By the way this is patched in the svn repos and waiting for release.