La vista non agisce mai direttamente sul livello del modello. Utilizza solo oggetti forniti dal controller per la visualizzazione. Non dovrebbe nemmeno eseguire query di lettura, in nessun modo dovrebbe mai fare qualcosa da solo che cambi lo stato del database.
Uso MVC in un ambiente web dove ctrl.Add(new Customer(name, age))
non sarebbe comunque un'opzione. Ma la visione non dovrebbe davvero conoscere i modelli. Supponiamo che non sia solo il nome e l'età, ma vorresti anche fornire un indirizzo. Per ora tutto ciò è memorizzato in un'unica tabella clienti. Più tardi decidi che vuoi avere gli indirizzi memorizzati separatamente. Questo sarebbe un esempio del perché non vorresti avere la vista per decidere quali oggetti creare.
A seconda della lingua e dell'ambiente, anche la questione della proprietà degli oggetti e della vita sarebbe rilevante. Non vuoi diffonderlo in più posti dove non è veramente necessario. Questo specialmente nei linguaggi che non dispongono della garbage collection e la decisione su quando e dove liberare la memoria degli oggetti diventa rilevante.