Yup, phrased like that it's about right and a legitimate gripe. The limits in C90 were even worse. There are still a few projects around that use the requirement to treat more characters as significant in internal names to work around that, like so:
And then provide the declarations and definitions of copy_from_memory and copy_from_file as normal, knowing that they will be renamed to copy1 and copy2 by the preprocessor.