Yes, of course. This is explained in my article
Dynamic Method Dispatcher.
In the referenced chapter "4.2. Return Values" I demonstrate one of the use cases of my
MuticastDynamicMethodDispatcher
generic class when I have to call each element delegate instance of the multicast delegate instance one by one. In my code, I do this for the purpose of giving the user the possibility to declare a custom rule for accumulating of the return values (see third paragraph, "The most sophisticated method of returning…"), but you can use this technique for anything else, for example, for reordering the calls.
If you execute the use-case code sample with my library under the debugger, you will see that implementation accesses the invocation list of the multicast delegate instance and traverse it to make individual invocation for each element, separately.
For understanding the background of some important delicate aspects of the internal structure of the delegate instances, you should better read the previous section,
Dynamic Method Dispatcher; 4.1. On the Nature of Delegate Instance.
—SA