Для создания точек расширения я предлагаю прочитать учебное пособие по точке расширения по адресу vogella.de: http://www.vogella.de/articles/EclipseExtensionPoint/article.html Оно содержит как определение точки расширения, так и ее применение.
О других ваших вопросах: если вы определитеточку расширения для предоставления класса X, вы также должны использовать точку расширения, чтобы получить его экземпляр. может быть хорошим вариантом, если ваша реализация - это реализация, которая выполняется, когда расширение не предоставлено, в противном случае - нет, но, как правило, для вас также является хорошей идеей использовать расширение (иначе говоря, есть свой собачий корм).
Однако имейте в виду, что для расширения провайдера может быть доступно несколько расширений, вы должны также обработать этот случай.
О базовой реализации - это приятно, если выпредоставить некоторый абстрактный базовый класс, который могут переопределять другие поставщики расширений.