I wouldn't know. I don't use any of them, and don't know anywhere in the code that does use them off the top of my hand. I'll poke around some and maybe get David to have a look at it since he did the const correct fix for the base to begin with. It could have been a simple oversight, or there could be a reason. I'll investigate.
Most of the code uses those functions, not that exact one, but a version of it. It's essential to many of the ways things work in magic and commands.
I may be off in my usage, but defining it as const simply states, you're not modifying the input, not that you won't modify the pointer within
the function itself.
As an example:
one_argument(arg1,arg2) takes arg1 and arg2, strips an argument from arg1, returns the remainder, and changes the original arg2 argument to the stripped value.
Making arg1 a const char*, and arg2 a char *(in the case of the one_argument function), as the original input is being modified by the function. Modifications limited in scope to the function itself do not qualify against it being a const argument.
But as I said, I could be mistaken, my knowledge is limited on pointers and the such... and my explanation isn't exactly the most elegantly laid out heh.