Where the documentation for those functions say "INTERNAL", that should be taken as shorthand for "GO AWAY. THIS IS A REALLY ******* BAD IDEA. PUT DOWN THE UTF8 FLAG AND BACK AWAY."
It is really quite depressing that this is expressed in shorthand.
It is not a good idea to use these functions. It is not a good idea to suggest anyone else uses these functions. These functions should almost certainly not exist: there are vanishingly few people that are competent to use them safely, and to the best of my knowledge those people would in all cases know (and prefer) other ways to achieve the same effects.
The functions in the utf8 module (upgrade, downgrade, encode, decode) are vastly safer, for example.