Cita: Pareciera que la función str_split "no habla español"
Más o menos.
No es que str_split() "no hable español" es que los caracteres multi-byte, es decir, acentos, utf, etc. no son soportados por dicha función, que a lo mucho sólo soporta ASCII.
Para eso existen funciones multi-byte, en tu caso, debes revisar mb_split() en el manual:
http://php.net/manual/es/function.mb-split.php