Claro... sería redundante, y sería una "sobrecarga" ( la pongo entre comillas, porque podría ser una sobrecarga ínfima, y en proyectos pequeños la diferencia no se nota ) a la hora de ejecutarlo.
Lo otro, de lo cual no estoy seguro, es que si dejamos las 3 funciones ( strlen, empty y preg_match ), el error lo lanzaría al devolver false alguna de las 3, inutilizando a las otras, en otras palabras, si stlren es menor o igual a 2, empty y preg_match no se ejecutarían. Así también, si pasa strlen sin problemas, pero empty devuelve false, no ejecutaría el preg_match, pudiendo ingresar caracteres que no permitas, o cosas así... la verdad ya me confundí... no des por definitivo lo que te dije, que no estoy seguro

:

: