Det är inte på grund av drivrutinsimplementeringen, det är PostgreSQL i sig. Det är samma sak med alla andra språk eller drivrutiner.
En klient måste vara ansluten till en databas för att kunna göra något, inklusive en CREATE DATABASE . Förutom postgres databas, template1 används ofta även för detta ändamål.
Sedan, eftersom du måste ansluta till den nyskapade databasen för att skapa objekt i den, finns det inget sätt att undvika att öppna en annan anslutning.
Kort sagt, det du gör kan inte förenklas, det är redan optimalt.