Isto é provavelmente porque public
tem privilégio de execução em sua função (é o padrão).
Tente isto:
revoke execute on function getid(text,text) from public;
e verifique novamente o resultado de has_function_privilege
.
Para public
não obter esse privilégio em funções recém-criadas, você pode alterar o padrão com:
ALTER default privileges revoke execute on functions from public;