So we see that a slight modification of the problem makes the approximation work for all graphs.

Elaborate on the proposed modification — are you referring to the fact that this can be done if distances obey a metric function?

If you modify the problem to allow passing by a node that you've already visited then the spanning tree approximation works for all graphs.