Tú durante la ejecución de la función alimentas $permiso, y al final devuelves $permiso con el valor que le corresponda dependiendo de la condiciones.
Pero si devuelves 0 PHP puede considerarlo como false. Por lo que si haces un
Código PHP:
echo $permiso
puede que no veas el cero.
Puedes devolver cadenas "ok", "no_ok", "departamento" que a lo mejor es más seguro.