But these need a connection to the postgresql backend. It seems an overkill for postgresql to connect to itself, I would prefer something more optimal. It seems for now that reading libpq's source code is the only way to go.
No, it doesn't need - you can call these functions via DirectFunctionCall interface