in reply to Re^2: sub classing best practice
in thread sub classing best practice

No more wrong than having a method in X return a new X::Y object. So long as you stick to a consistent way to do your factory classes, I don't see a problem.