Добавление методов в IEnumerable будет означать, что все типы, производные от IEnumerable, должны будут реализовывать их сами.Теперь с помощью методов расширений мы можем сортировать добавления реализаций к интерфейсам.
Другим побочным эффектом будет то, что код, написанный на .NET 2.0, все еще будет компилироваться с 3.0, когда был представлен Linq.В противном случае, если бы вы реализовали IEnumerable где-то в своем проекте, вам теперь пришлось бы реализовать и все новые методы в интерфейсе.
Методы LINQ для объектов Linq To определены в Enumerable class.
Более того, LINQ ищет методы, которые объявлены с использованием определенного синтаксиса и не основаны на интерфейсе или классе.Вам может показаться интересной серия Edulinq Джона Скита.
MSDN о методах расширения.