как можно без сеттеров? если у тебя там пропертей штук 8-10, все через конструктор пихать будет очень больно,
поэтому у меня идет билдер с обязательными полями и остальные по необходимости.
Если ты утверждаешь, что что-то является имутабельным - не должно быть возможность поменять свойства/методы этого имутабельного объекта, иначе твое первое утверждение наверное, только и всего.
Но ты можешь делать мутабельный билдер (с сеттерами, да), который создаёт имутабельным объект