Blondengy was the one who originally wrote this, but I assume it is because PHP will not support UTF8 natively until version 6.
This means that a number of functions can and will break UTF8 strings.
String functions like substr(), ucfirst(), strtoupper(), strlen() and so forth can break the actual string or will return wrong values. For example strlen will return the number of bytes, not the number of characters.
Ideally we would be UTF8 all the way, but that currently gives us a few challenges.