I was just thinking... perhaps the compiler does look at the array size in the prototype/header. But not for the example you've given. What about
Code:
int foo(int bar[][10]);
In that case inside the function the compiler knows what the width of the array is while calculating row offsets. I haven't tested this but it seems reasonable. Still, any number in the FIRST axis, if present, is always ignored.