Cuando el TSP esta forzado a comenzar el camino por un nodo arbitrario, que corresponde a la llamada TSP(0, i) en ciertos casos sale mejor asumir empezar desde otro vertice que desde el mismo nodo $i$.
El cambio es muy minimo, solo hay que poner en los comentarios que para forzar al TSP a empezar desde cierto nodo $i$ hay que iniciar el algoritmo con TSP((1<<i), i). De igual manera para reconstruir el camino.
El caso que lo rompe es este: https://pastebin.com/DfcQ8ZLB
El algoritmo decide empezar por el $2$ asumiendo el costo de $1 \rightarrow 2$.