Если код подразумевает многопоточность - то лучше использовать иммутабельные ДТО. Это поможет избежать таких проблем как: один поток читает, а второй меняет данные. И виртуальный машине (JVM) проще выделить новый кусочек памяти, чем изменять старый - про это где-то читал, где сейчас не помню.
Плюс при компиляции JVM может оптимизировать работу с иммутабельным объектом