não sei se a pergunta que fiz em outro forum se aplica a este também. Acredito que sim, já que a questão de relacionamentos (associações) entre objetos promove persistência de dados.
Se entendi sua questão corretamente, a resposta é: Não, não tem um ferramenta que faça isso; ao menos eu ainda não vi uma que faça isso que vc quer.
Mas uma idéia para melhorar esse “problema” que vc citou seria vc criar uma Lista (ver tipos de lista utilizados em persistencia) especializada, contendo as operações que vc julga necessárias e seguras; desta maneira o código que incomoda irá ficar encapsulado.
Só acho que isto não ficaria muito “bonito”:
Assim, com os métodos que lhe incomoda, acho que fica um pouco melhor: