Por que a matriz implementa IList?

Veja a definição de System.Array class

public abstract class Array : IList, ...

Teoricamente, eu deveria ser capaz de escrever este pedaço e ser feliz

int[] list = new int[] {};
IList iList = (IList)list;

Eu também devo chamar qualquer método do iList

 ilist.Add(1); //exception here

Minha pergunta não é por que recebo uma exceção, mas simwhy Array implementa IList?

questionAnswers(5)

yourAnswerToTheQuestion