Alasan mengapa mereka umumnya dipisahkan adalah karena Anda ingin pandangan Anda menggunakan pengontrol untuk mendapatkan model Anda. Tetapi arsitektur harus memungkinkan Anda untuk mengganti satu tampilan dengan yang lain tanpa harus mengubah logika bisnis (yaitu model objek atau bagaimana objek-objek itu diambil).
Dengan tidak mengikat pengontrol Anda langsung ke tampilan, nanti saya akan jauh lebih mudah untuk menambahkan fungsi lain seperti impor / ekspor yang dapat menggunakan pengontrol / model secara langsung tanpa harus bergantung pada UI.
Keuntungan lain dari mendorong kode sebanyak mungkin keluar dari UI adalah karena UI jauh lebih sulit untuk diuji unit daripada lapisan bisnis di belakangnya. Dengan memisahkan sebanyak mungkin dari tampilan itu sendiri, Anda dapat menulis lebih banyak unit test untuk memastikan controller / model dan logika aplikasi Anda benar.