Como você resolveria essa questão?
A melhor forma para resolver essa questão (hoje) é a mesma dos grandes sistemas de mercado, um banco de dados armazena os dados de todos os clientes e trabalhamos o balanceamento conforme necessário, mais jamais separando banco por cliente. Como seria a manutenção disso depois? Para alterar um campo, uma procedure, uma function? Altera em todos os bancos, automatiza? Vai dar problema, com certeza.
Sim, concordo 100% que para realizar manutenção e escalar verticalmente o sistema centralizar tudo num DB é a melhor abordagem.
O ponto é que na pergunta do amigo ele diz que a empresa dele segue o caminho de dividir um banco para cada cliente. Nesse caso como eu imagino ser inviável mudar a arquitetura do sistema para seguir a abordagem que recomendados, a melhor forma de resolver o problema no contexto dele é centralizar as informações das bases num banco central. Não consigo enxergar outra forma de resolver esse caso.