> To my understanding it's an old BSDism and it's used to implement > isupper(3), islower(3), etc.
The names may be old BSD, but this is following a pretty strong ISO rule that names starting with '_' are in reserved, and trying to use them yourself is undefined. Changing them to another name that won't collide? Maybe, I've no opinion.