Risolto!
Ho cambiato getTitoli() in CarrelloTotale, ribattezzato Cassa perché più significativo:
codice:
public void getTitoli() {
	for (ElementiCarrello ec : carrello.getElementi()) {
		ec.accetta(this);
	}
	System.out.println("Titoli acquistati: " + titoli.size());
	for (String tit : titoli) {
		System.out.println(tit);
	}
}
Ora sto valutando di unire getTitoli() e getTotale() in un unico metodo, dato che il for è identico, magari trasferendo in Cassa i println.
Grazie per gli spunti di riflessione, mi ero fissato su add()...