Класс Pattern новее, чем многие вещи в JDK. Поэтому я считаю, что они приняли более современный подход использования фабричных методов, а не более старый подход публичных конструкторов. Вы не можете реально модифицировать фабричные методы к существующим классам.
Вообще говоря, не так много причин использовать конструктор для фабричного метода, поэтому я думаю, что это все, что нужно. Фабричные методы позволяют вам абстрагировать создание объекта, что может быть очень полезным.