Here's a lovely function defined in a module offered for contribution...
OK, so what's the deal here? Well, simply put, it's defined in a module that's not call "myTruncate". So it's a bare function declaration outside of the modules namespace. Why is this a problem? Well, the function name should not clash with another Contrib module assuming everyone else bothered to namespace their functions correctly. But Core? Core is allowed to name functions as it likes. That's the nature of Core.
If Core in future were to declare a function called myTruncate() then this module would make the website toast. PHP doesn't allow functions to be redeclared, it's a PHP fatal error and probably a sudden WSOD< for the end user (not to mention cardiac arrest at the sudden loss of their site for no real reason other than they upgraded Core).
People, ensure your function names are namespaced (prefixed) with your module's name. Even better, none hook functions should begin with _ as in _mymodule_my_truncate()
Yep, I know PHP not having namespaces (yet) is a pain. But we must live with.