One of PgBouncer original design goals is to create small and robust connection pooler. If we start adding more and more fancy features like load balancing then we can easily end up in the same place from which we wanted to get away (pgPool).
We do our load balancing on ip level when the servers are duplicates of each other. Good for read only stuff. Next level of load balancing we use is splitting databases into partitons. That way we can distriobute one database over several servers. We use plProxy to do this. Downside is raised complexity. Benefit all the partitons can be read write. Also good for reducing risks. If one part goes down others are still functioning. Asko