namespace es un espacio donde agrupas clases que se relacionan por decir controles de un formulario van en el namespace de forms.
Los desarrolladores de PHP tienden a agrupar clases en directorios comunes, (ve por decir el ZendFramework).
Java y .NET por decir usan esos namespaces pero el compilador puede actuar de forma que si tu pones:
Código:
text1 = new forms.controlTextbox();
Analiza que controlTextbox es una clase del paquete o namespace forms, e importa ese paquete y crea la clase.
PHP por su lado no hace estos analizis dinamicos y requiere que tu incluyas la clase antes:
Código PHP:
include( "forms/contolTextBox.php" );
$text1 = new controlTextBox();
Los namespaces es algo que se hablo en PHP6 pero lo desarrolladores no estan muy seguros de incluirlo.
MVC no esta atado a una capa fisica o logica, es mas bien un paradigma de programacion en el que separas la capa de trabajo de la vista por lo que es mas sencillo expandir y controlar tu programa al tenerlo en "modulos" que hacen cierto trabajo y en vistas (ya sea HTML, PDF, Texto, etc.)
Por decir un mismo controlador con un modelo puede sacar el contenido en varios formatos, y en la programacion "estructurada" requeriria reprogramar cada script, aqui lo unico que haces es actualizar el controlador para que use una vista diferente.
Espero con esto te quede un poco mas claro,