Não é por causa da implementação do driver, é o próprio PostgreSQL. É o mesmo com qualquer outro idioma ou driver.
Um cliente precisa estar conectado a um banco de dados para fazer qualquer coisa, incluindo um
CREATE DATABASE
. Além do postgres
banco de dados, template1
é frequentemente usado para esta finalidade também. Então, como você deve se conectar ao banco de dados recém-criado para criar objetos dentro dele, não há como evitar a abertura de outra conexão.
Resumindo, o que você está fazendo não pode ser simplificado, já está ótimo.