Ah, so you have indeed made routing policy decisions and placed them into the end systems of the originator of the session. This is most interesting. A site which has multiple connections with varying cost has to either live with the routing policy you've encoded into the stack or force dropped packets in some fashion to try to fool your stack.
Routing policy of a site is represented by IGP metric that my stack at the transport or the applicaiton layer can just accept IGP information and use it to choose the most favourable address of my peer. If the chosen address does not work, the transport or the application layer try others, after transport or application layer dependent timeout.
There is nothing encoded in the stack.
There is no routing architecture change.
Masataka Ohta