Oi Robson, tudo bem?
O motivo para checar a existência da cc3 dentro da lista mesmo sem tê-lo adicionado antecipadamente é para mostrar que mesmo a cc3 tendo o mesmo número e agência que a cc2, o método não encontra nada! Sendo que em um caso real, duas contas com a mesma agencia e número não deveriam existir, já que elas representariam a mesma conta dentro do negócio.
O que acontece é que o contains() usa o método equals() internamente para fazer as comparações e descobrir se um elemento está contido ou não dentro da lista, porém essa comparação, por padrão, é feita através dos endereços dos objetos e não através da agencia e número como é feita na vida real. E é aí que devemos alterar o equals() para que ele deixe de comparar o endereço do objeto e passe a comparar a agencia e o número da conta.
Espero ter ajudado, se ficou qualquer dúvida é só avisar!
Bons estudos!!