Мы в свое время с Алексеем довольно плотно обсуждали. Трех-уровневое наследование Интерфейс <- абстрактный <- реализация - это вообще довольно типично и хорошо. Закрытые иерахрии - еще один пример. Кроме того, если случаи, где более ветвистое наследование обосновано - например UI компоненты
Вот кстати наследование от абстрактной реализации - это по идее "деталь реализации", но эта самая деталь вылазит наружу, что не очень хорошо.
Остаётся только делать оба класса скрытыми и фабрику рядом, из которой торчит только интерфейс.