Problemas que o @OneToMany pode causar?

Relacionamento:

Uma empresa tem uma lista com os locais de faturamento.
Mas o endereço de faturamento não tem a referencia para a empresa, já que, pode ter um endereço de faturamento para o cliente ou outra entidade.


@Entity
@Table(name="empresa")
public class Empresa {

....
 @OneToMany
 List<EnderecoFaturamento> enderecosFaturamento;

}

@Entity
@Table(name="endereco_faturamento")
public class EnderecoFaturamento {

...

}

A empresa salva corretamente, e ao colocar o Cascade.ALL salva também todos os endereços de faturamento, e mantem uma tabela auxiliar para identificar em qual empresa o endereço de faturamento está vinculado.

Minha dúvida é a seguinte:

Quando estava procurando como fazer o relacionamento OneToMany vi muitos comentários falando que esse tipo de relacionamento causava muitos problemas.Alguém poderia comentar alguma experiência ou algo que poderia causar transtornos com essa abordagem?

OBS: Normalmente utilizo @ManyToOne do outro lado do relacionamento, mas nesse caso como não queria ter uma referencia da empresa no endereço essa foi a abordagem que achei mais adequada.

O problema creio eu seria que nesse @OneToOne vc teria um List para pegar os filhos, tipo:

public class Usuario {
@oneToMany
public List<Foto> fotos;
}

Melhor deixar apenas:

public class Foto {
@ManyToOne 
private Usuario usuario;
}

O que dizem é que o List iria sobrecarregar demais o banco se estivesse com muitos dados, e para pegar as fotos de um usuário no exemplo bastaria dar o select em Foto pegando pela id de usuário que estaria na tabela Foto.
Abraço!

Mas as bibliotecas de persistência já não estão trabalhando com lazy query/lazy resource acquisition?