A verdade é que a maioria das pessoas usa uma variação personalizada do algoritmo A * . Você verá isso na maioria dos "grandões" (não sei dizer quem são eles em um fórum público, mas posso lhe dizer que você provavelmente usa um deles - garantido), onde a modificação das heurísticas é muito dependente dos conjuntos de dados que eles usam.
Você mencionou o pgrouting , o que eu consideraria uma opção "tradicional". É bom para executar algoritmos de roteamento simples e para a maioria dos problemas. Também é fácil de usar e usa um banco de dados tradicional em seu back-end.
No entanto, isso realmente depende da escala e do tipo de problema que você está tentando resolver e o roteamento é um problema gráfico .
Mais uma vez, os "grandões" geralmente têm muitos dados associados ao seu gráfico (por exemplo, dados de tráfego, rotas de ônibus, caminhos pedestres) que afetam o algoritmo de roteamento. Eles são conhecidos como planejadores de viagem multimodais (onde você também pode escolher "modos" - sem ciclovias - apenas transporte público - esse tipo de coisa). Você pode pensar como planejamento de viagem também se torna uma questão sensível tempo (ou seja, se você andar para trás algumas arestas para trás, você será capaz de pegar o metrô que leva você para o seu destino para a frente muito mais rápido do que se você apenas tentou navegar nas bordas frente usando o menor custo).
Os "grandões" não armazenam seus dados em um banco de dados tradicional em si, eles usam gráficos pré-computados (bem-vindo aos clusters hadoop / mapreduce!). Como você pode imaginar, esses gráficos se tornam realmente grandes, portanto, saber como conectar as bordas dos gráficos adjacentes pode ser um desafio.
De qualquer forma, eu recomendaria que você visse alguns projetos de gráficos de roteamento multimodais:
O Graphserver vem à mente. Não é muita documentação, mas muita grandeza de codificação pura (AFAIK, acredito que o MapQuest usa uma variação deste projeto para alguns de seus produtos de roteamento).
Outra opção seria o OpenTripPlanner, que tem muitas pessoas inteligentes por trás (incluindo pessoas do graphserver).