IIRC, you could use longer names than that (in C), but external references
only used the first 7 (in C - C symbols had a leading '_' tacked on; I used to
know why), 8 (in assembler).
Precisely to avoid collisions between external names in C and names in assembler (whose namespace was flat except for local labels) when they were linked into your program.
For similar reasons, F77 names had a trailing '_' tacked on.