Ну, я бы сказал, что все зависит. Существуют и другие не связанные с безопасностью причины возврата неизменяемых объектов, поскольку это может также привести к некоторым трудно обнаруживаемым ошибкам в вашем коде, если объект используется не по назначению.
Будет ли доступ к классу с помощью ненадежного кода и / или данных? Если это так, вам необходимо иметь четкое представление о том, в чем заключается ответственность вашего приложения в отношении проверки входных данных.
Кроме того, какова природа приложения? Если это, например, внешне доступная сетевая служба, тогда ввод почти наверняка будет считаться потенциально вредоносным. Однако если это приложение, запускаемое локально без привилегий, которое получает данные из надежного источника, то, вероятно, не стоит беспокоиться.