The following code
 
D[f[a, b, c, d], {{{a, b}, {c, d}}}]
gives as expected array derivative
 
{{Derivative[1, 0, 0, 0][f][a, b, c, d], Derivative[0, 1, 0, 0][f][a, b, c, d]}, 
 {Derivative[0, 0, 1, 0][f][a, b, c, d], Derivative[0, 0, 0, 1][f][a, b, c, d]}}
but
 
D[f, {{{a, b}, {c, d}}}, NonConstants -> f]
gives
 
{D[f, {a, b}, NonConstants -> {f}], D[f, {c, d}, NonConstants -> {f}]}
which is not an array derivative as I understand.