This might not be all that old! Early ISO C standard (1990) had the same 6-significant-character limitation for identifiers exported across translation units. So far as I know, this quirk is there because early C implementations reused pre-existing Fortran 77 linkers, many of which still had that limit at the time.
I vaguely remember they had different namespaces using common blocks.