plpgsql está muito bem integrado com o SQL - o código-fonte deve ser muito limpo e legível. Para linguagens SQL como PLJava ou plpython, instruções SQL tem que ser isolado - SQL não faz parte da linguagem. Então você tem que escrever pouco mais de código bit. Se o seu procedimento tem grande quantidade de instruções SQL, então procedimento plpgsql deve ser mais limpo, mais curto e pouco mais rápido. Quando o procedimento não tem instruções SQL, em seguida, procedimentos de linguagens externas pode ser mais rápido - mas linguagens externas (interpreta) precisa de algum tempo para inicialização - assim para tarefa simples, procedimentos em SQL ou linguagem plpgsql deve ser mais rápido.
Linguagens externas são usados quando você precisa de algumas funcionalidades como o acesso à rede, acesso ao sistema de arquivos - http://www.postgres.cz/index.php/PL/Perlu_-_Untrusted_Perl_%28en%29
O que eu sei - as pessoas geralmente usam uma combinação de idiomas PL - (SQL, plpgsql, plperl) ou (SQL, plpgsql, plpython).