Ive been playing with messing with the routing IO in M4L for a while now …
(though mainly for midi/sampling, rather than sends)
basically, I have midi tracks for my controllers, which feed into instrument tracks, and then into ‘sampler’ tracks… then I just switch the I/O routings to say whats going where.
Ive mainly been doing this because for MPE , I need to have multiple midi tracks for an individual controller… I then created a M4L object which makes this easier, by ‘mirroring’ track 1, to track 2…N just changing channels numbers.
this recently became much better, since Ableton have now made routing I/O available on the push 
theres a few reasons I use, routing IO, but main one is efficiency/latency. I dont really want to introduce M4L processing on audio/midi unless it really wants to transform the audio/midi.
… fortunately the routing I/O is accessible via M4L so you can alter this from M4L (which is what I did on my MPE M4L object, basically a bunch of track observers, triggering routing changes)