Seu design original é baseado em princípios sólidos. Se ajudar no seu caso, essa estratégia é conhecida como particionamento horizontal ou fragmentação . Ele fornece:
1) Maior escalabilidade - porque cada shard pode viver em hardware separado, se necessário.
2) Maior disponibilidade - porque a falha de um único shard não afeta os outros shards
3) Maior desempenho - porque as tabelas pesquisadas possuem menos linhas e, portanto, índices menores, o que resulta em pesquisas mais rápidas.
A sugestão do seu colega leva você a um único ponto de configuração de falha.
Quanto à sua pergunta sobre 3 pools de conexão de tamanho 10 vs 1 pool de conexão de tamanho 30, a melhor maneira de resolver esse debate é com um benchmark. Configure seu aplicativo de cada maneira e, em seguida, faça alguns testes de estresse com ab (Apache Benchmark) e veja qual é o melhor desempenho. Eu suspeito que não haverá uma diferença significativa, mas faça o benchmark para provar isso.