O custo adicional deve ser devido ao fato de você estar usando a função set return no
SELECT
cláusula em vez do FROM
cláusula. Observe que o processamento de funções de retorno de conjunto no
SELECT
cláusula alterada no PostgreSQL v10, então sua versão pode influenciar neste comportamento.