La agrupación a nivel de transacción ayudará si tiene aplicaciones que mantienen sesiones inactivas. PgBouncer no necesitará mantener las sesiones abiertas e inactivas, simplemente toma una cuando se inicia una nueva transacción. Esas sesiones inactivas solo le cuestan una conexión de pgbouncer, no una sesión de Pg inactiva real con un backend sentado desperdiciando memoria y sobrecarga de sincronización sin hacer nada.
La razón principal por la que querría la agrupación de sesiones en lugar de la agrupación de transacciones es si desea utilizar declaraciones preparadas con nombre, bloqueos de aviso, escuchar/notificar u otras características que operen a nivel de sesión, no a nivel de transacción.