Es gibt keinen Grund no auf diese Weise zu tun, wenn es für Sie sinnvoller ist. Seien Sie sich bewusst, dass viele Dinge im Cocoa-Framework aufgrund von Designentscheidungen auf höherer Ebene so sind, wie sie sind, z. B. die Bevorzugung von Komposition und Delegation gegenüber der Unterklassenbildung.
Wenn Sie wollen, können Sie C#-Software entwerfen, die wie Objective-C-Software aussieht, aber Menschen ohne Cocoa-Erfahrung müssen sich das erklären lassen, weil ihnen das lose gekoppelte Design einfach "seltsam" vorkommen wird.
Oh, richtig - die Vorteile dieses Designs sind eine bessere Wiederverwendbarkeit der UI-View- und Model-Klassen (da sie nichts voneinander wissen), etwas einfacherer Code in den View-Klassen und ein größerer Teil der "Anwendungslogik" an einem einzigen Ort (die Controller-Klassen).