I have gotten a response from Tom over on the pgsql-bug list. He doesn't have a solution yet but was able to recreate the problem.
He had this to say in his note:
Hm. I notice that postgres.sql hardwires the location of the plpgsql
handler:
create function plpgsql_call_handler() RETURNS opaque
as '/usr/local/pgsql/lib/plpgsql.so' language 'c';
create trusted procedural language 'plpgsql'
HANDLER plpgsql_call_handler
LANCOMPILER 'PL/pgSQL';
If this were to suck in a wrong-version copy of plpgsql.so (and yes,
I think 7.1 vs 7.1.1 could be wrong version) then that could cause
failures.
postgres-pgtcl.sql is equally unwise about the pltcl handler.
This is *not* the source of your problem, since I was able to
reproduce the crash even with a proper "createlang plpgsql" used
instead of the bogus commands. But you might want to pass on the
observation to the OpenACS guys.