El problema no es con mysql_real_escape_string, sino con la forma en que estas creando tu clase:
Código PHP:
Ver original $this->recursivo($value); // Aqui deberias asignar el resultado a una variable
// Ejemplo: $value = $this->recursivo($value);
}else{
$value=$this->limpiar($value);
}
Si no asignas el resultado a una variable, este valor se perdera (?) conservando el original, es el mismo problema que tenias en el primer script.