Quebrar encapsulamento ao mapear entidade no JPA2 é crime em alguns casos?

Olá pessoal, considerem um mapeamento simples para uma entidade no JPA, por exemplo: Cliente.

[code]
@Entity
@Table(schema = “guj”)
public class Cliente {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;

public String nome;

@Embedded
public Endereco endereco;

}[/code]
Neste caso seria um pecado muito grande abrir não do encapsulamento pela simplicidade, pois já que as anotações estão nos atributos (Field Access) o provedor do JPA fará o acesso aos atributos usando reflection, e getters e setters não são necessários.

Qual a opinião de vocês?

Vai pensar apenas na parte de persistência?
E a lógica? E a parte onde você vai definir os valores dos atributos?

Vamos considerar que fosse usar uma estrutura via Repositórios, dai para classe Cliente teríamos um ClienteRepositorio, a logica poderia ficar um classe ClienteService.