Καταρχάς, ο assignment operator είναι κι αυτός φίλη συνάρτηση. Οι φίλες συναρτήσεις έχουν πρόσβαση και στο this και στα αντικείμενα που λαμβάνουν ως παραμέτρους (σχεδιαστικά αυτός είναι και ο σκοπός τους, αν δεν είχαν αυτή την ιδιότητα θα ήταν αρκετά άχρηστες). Ομοίως, ο copy constructor εχει πρόσβαση τόσο στο this όσο και στο αντικείμενο το οποίο λαμβάνει ως παράμετρο.
Αν θέλουμε να το δούμε πιο αφαιρετικά/γενικά, φτιάχνουμε τις κλάσεις ως ένα wrapper για ένα σύνολο τύπων δεδομένων. Πρόσβαση στα private έχουν (και έχει νόημα να έχουν) μόνο οι φίλες συναρτήσεις και οι μέθοδοι της κλάσης. Αν δώσεις σημασία στην σημασιολογία του friend (σε τι "ελευθερίες" μεταφράζεται για την εκάστοτε φίλη συνάρτηση) πιστεύω θα είσαι εντάξει.