Si las declaraciones que intenta "evaluar" siempre devuelven el mismo tipo de datos, podría escribir una función eval() que use el EJECUTAR mencionado por Grzegorz.
create or replace function eval(expression text) returns integer
as
$body$
declare
result integer;
begin
execute expression into result;
return result;
end;
$body$
language plpgsql
Entonces podrías hacer algo como
SELECT eval('select 41') + 1;
Pero este enfoque no funcionará si sus declaraciones dinámicas devuelven algo diferente para cada expresión que desea evaluar.
También tenga en cuenta que esto abre un gran riesgo de seguridad al ejecutar declaraciones arbitrarias. Si eso es un problema depende de su entorno. Si eso solo se usa en sesiones SQL interactivas, entonces no es un problema.