Why GetInvocationList of System.Delegate class returns array?

I am trying to learn how delegates work so I watched over the hierarchy and I found that invocation list of a System.Delegate is actually an array. If all the methods are invoked with the FIFO principle why not store the Delegates in Stack?

Delegates are a language feature that was in .NET since its inception.

Data structure to store invocation list is just a design decision, but it couldn't be Stack<T> because this collection was introduced in .NET 2.0 (earlier versions had no generic collections or generics at all, they were introduced in .NET 2.0/CLR 2.0).

Based on both points, I suspect that it was never changed from Array to another data structure because of it would mean that .NET 1.x code would be broken so they decided to maintain backwards compatibility.