Потому что основной аргумент против билдеров у меня всегда был - мы лишаемся статической проверки на то что мы все обязательные параметры предоставили. Вместо этого синтаксический сахар который может в жабе и нужен, потому что параметры передаются по очереди, но нам как то не с руки, потому что параметры и так именованеые
Кстати, обязательные параметры можно передать в Builder::new(arg1, arg2, arg3)
, а для опциональных можно сделать методы.