Extensive use can lead to complex naming and hinder subclassing.
While static factory methods provide numerous benefits like named creation paths and validation, overusing them can lead to a proliferation of methods with complex names, which can be hard to manage. Additionally, unlike constructors, static factory methods are not inherently inherited in subclasses, potentially limiting extensibility. In an e-commerce system, if you have numerous static factory methods for creating different product objects, it might complicate the class design and readability.
Additional Notes
What tradeoffs should be considered when using static factory methods extensively?