Nothing says the Time Exceeded packets elicited by your traceroute have to follow the same path back to you that you initiating packets followed out. It's a convenient fiction to think about IP networks acting like circuit-switched networks and in most LAN and small WAN applications they do. Mostly you can get away with thinking that way in more complex networks, too. When you end up in a situation where path asymmetry is causing you grief, thought, it's nice to have the understanding that each datagram can have a unique routing destiny.