This is not the hosts that decide which route a packet will follow, each router in the path make it's own decision.
(Actually, the originating host could use the IP strict source option to try to force the packets to go through a specific route, but it's rarely, if ever, used, and it's totally ignored by routers on the Internet.)
So each router can change the routerroute of packets depending on the network condition (link drop, congestion on a link, load balancing...)
What a host can decide is to alter it's TCP window (flow control), to modify the rate at which it sends information, but this doesn't impact routing.
Except for Policy Based Routing, routing is a layer 3 decision that doesn't take into account layer 4 (TCP / UDP) information, so it's performed in the same way for TCP / UDP / ICMP etc...