The proliferation of factories is not an indication of over-architecting something. It is a direct consequence of finding a balance between maintainability and the lack of first class functions (or constructors as first class functions).
If you have never had the need to introduce factories, I claim that you have not worked with a truly polymorphic system.
If you have never had the need to introduce factories, I claim that you have not worked with a truly polymorphic system.