Não é surpresa. A linguagem SQL não suporta variáveis. Você tem que usar a linguagem plpgsql.
CREATE OR REPLACE FUNCTION clean_emp()
RETURNS void AS $$
DECLARE cnt varchar;
BEGIN
END;
$$ LANGUAGE plpgsql;
Veja mais na documentação http://www.postgresql.org/docs/current /static/plpgsql.html .
PostgreSQL tem mais linguagens para escrever funções. A linguagem SQL é perfeita para macros de instrução de uma linha. O PLpgSQL é uma linguagem nativa clássica semelhante ao PL/SQL da Oracle com SQL embutido.