Os documentos dizem
Se a assinatura tiver sido configurada com run_as_owner = true, nenhuma troca de usuário ocorrerá. Em vez disso, todas as operações serão realizadas com as permissões do proprietário da assinatura. Nesse caso, o proprietário da assinatura só precisa de privilégios para SELECT, INSERT, UPDATE e DELETE da tabela de destino e não precisa de privilégios para SET ROLE para o proprietário da tabela. No entanto, isso também significa que qualquer usuário que possua uma tabela na qual a replicação esteja acontecendo pode executar código arbitrário com os privilégios do proprietário da assinatura. Por exemplo, eles poderiam fazer isso simplesmente anexando um gatilho a uma das tabelas de sua propriedade. Como geralmente é indesejável permitir que uma função assuma livremente os privilégios de outra, esta opção deve ser evitada, a menos que a segurança do usuário no banco de dados não seja motivo de preocupação.
Não tenho certeza se entendi por que isso é um risco à segurança. Não é sempre que o proprietário da tabela pode forçar a execução de código em funções que usam sua tabela? Minha intuição ingênua é que o proprietário da tabela é uma função sensível precisamente porque possui esses privilégios, enquanto a função de proprietário da assinatura pode ter privilégios muito restritivos (apenas CRUD em suas tabelas). Por que essa intuição está errada?