I was talking specifically about a multihomed host in the above. Looking at a large multihomed organization as simply a collection of individual hosts that are all multihomed is unmanagable. So remove the multihoming processing to the edges where you can control it. I think that could work well.
From S's perspective, I can see that this scenario would make it easy touse the right path (from N1, N2, ...) to reach D. However, wouldn't it require the edge to maintain state for each flow which crosses it?