Я использовал эту функциональность несколько раз - и фактически эта функциональность была создана специально для украшения интерфейсов без их изменения, следовательно, LINQ. Все достоинства LINQ (по крайней мере для объектов) основаны на методах расширения до IEnumerable .
Однако я не чувствую, что методы расширения каким-либо образом заменяют абстрактные базовые классы, когда вам нужны их. Методы расширения не могут получить доступ к закрытому состоянию расширенного класса - методы расширения выглядят как экземпляры, но все еще статические.
Методы расширения и абстрактные базовые классы решают два разных типа проблем, и выбор использования любой из этих парадигм не должен зависеть друг от друга.
Мой ответ на ваш заглавный вопрос таков: нет, существование методов расширения не делает абстрактные базовые классы менее привлекательными. Если кто-то считает, что существование методов расширения делает абстрактные базовые классы менее привлекательными, то, во-первых, он неправильно использовал абстрактные базовые классы.