I think it could be consistent with the sharing of global variables.
If I well remember M$ C compiler (the old DOS version at least) automatically allocate a global variable if are present one or more external declarations of the same variable (i.e. "#external int a"), also if there is no allocation (i.e. "int a") in any module.
Of course defining the same variable on the same line and in the same module seems odd, but sintactically correct for the language grammar.