Nun, ich kann nicht sagen, warum es nicht verfügbar ist, aber ich puede bestätigen, dass es sich nicht um ein CLI-Problem handelt. Die CLI-Spezifikation erwähnt es nicht (soweit ich sehen kann) und wenn Sie IL direkt verwenden, können Sie ein generisches Attribut erstellen. Der Teil der C# 3 Spezifikation, die es verbietet - Abschnitt 10.1.4 "Class base specification" gibt keine Begründung.
Die kommentierte ECMA C# 2 Spezifikation gibt auch keine hilfreichen Informationen, obwohl sie ein Beispiel dafür liefert, was nicht erlaubt ist.
Mein Exemplar der kommentierten C# 3-Spezifikation sollte morgen eintreffen... Ich werde sehen, ob das mehr Informationen gibt. Wie auch immer, es ist definitiv eine Sprache Entscheidung eher als eine Laufzeit ein.
EDIT: Antwort von Eric Lippert (paraphrasiert): kein besonderer Grund, außer um Komplexität in der Sprache und im Compiler für einen Anwendungsfall zu vermeiden, der keinen großen Mehrwert bringt.