Esa función te irá bien en la mayoria de casa pero no la recomiendo, sé que es muy bonita porque es recursiva pero no te protejera "de todo".
Aparte de eso, harás el mismo efecto activar las magic_quotes "al vuelo"...
La directiva de PHP magic_quotes_gpc tiene un valor por defecto de on, por lo que de forma automática se llama a la función addslashes() en todos los datos que llegan a través de los métodos GET y POST y a través de las cookies. Por tanto, no es necesario emplear la función addslashes() en las cadenas que ya han sido escapadas mediante la directiva magic_quotes_gpc ya que si no, se harí un doble escape. La función get_magic_quotes_gpc() puede ser útil para comprobar el valor de esta directiva.
No pienses en lo que te puedan entrar, piensa en lo que tu quieres tener, y sanea partiendo de aquí.
Te recomiendo las expresiones regulares.
Un saludo!