Die strikte Vorschrift von "vorwärts" lese ich auch aus der .NET-Doku jetzt nicht heraus.
Es ist auch keine Vorschrift, sondern die ergibt sich daraus, dass ein IEnumerable zwar eine implizite aber keine definierte Reihenfolge hat.
Enumeriert man die Werte eines Dictionarys, kommen die in irgendeiner Reihenfolge. Dadurch macht auch das Umkehren der Reihenfolge keinen Sinn.
Es gibt andere Interfaces, die auf definierte Reihenfolgen Rücksicht nehmen.