Por que fazer cópias defensivas em getters dentro de classes imutáveis?

Esta questão é sobre boas práticas de programação e evitando potenciais buracos.
Eu li o Effective Java de Joshua Bloch e eis o que eu me pergunto:
Por que eu deveria considerar fazer cópias defensivas em métodos getter em minha classe imutável sem mutantes?
E segundo: por que eu deveria fazer meus camposfinal além deprivado ? Isso é apenas sobre desempenho (não segurança)?

questionAnswers(7)

yourAnswerToTheQuestion