Wenn bei aktivem ARC die Interfacereferenzen ans ARC weitergeleitet werden,
dann müsste man ja bei allen Interfaces, welche "anders" zählen, ja das ARC deaktiviert werden.
So gesehn, wurde das dann doch falschrum implementiert, weil das ARC hätte besser seine Referenzen ans Interface weitergeben müssen?
Wie soll ARC an Interfaces irgendwas weitergeben. Die Referenzzählung bei Interfaces ist ein Implementierungsdetail der implementierenden Klasse.
Wenn man es genau betrachtet und berücksichtigt, dass man seinen Code nicht von Implementierungsdetails abhängig machen soll, bewegt man sich bei der Referenzzählung und Programmierung gegen Interfaces genau genommen schon ziemlich in einer Grauzone.
Gegen ein grausames Design, in dem man Objekt und Interface Referenzen bunt vermischt und keinen Plan mehr über die genauen Lebenszyklen und Scopes der Dinger hat, ist noch kein Kraut gewachsen. Man könnte jetzt wieder für einen GC argumentieren, aber auch den kann man verwirren, so dass ohne ihm auf seltsamste Weisen unter die Arme zu greifen, Speicherlecks entstehen.