Imagina que tienes un servidor donde vas a hospedar múltiples aplicaciones, buscas que sean independientes lo mas posible una de otra.
Código:
http://localhost/app1
http://localhost/app2
http://localhost/app3
Lo que buscas es que tus librerías/framework/infraestructura sea accesible por las 3 aplicaciones, es por eso que las montas en un directorio aparte:
Código:
/wwwroot/libraries/ <- Librerías del sistema (fuera del WWWRoot)
/wwwroot/htdocs/app1/ <- Aplicacion 1
/wwwroot/htdocs/app2/
/wwwroot/htdocs/app3/
/wwwroot/htdocs/Assets/ <- Archivos de soporte de la librería
Así puedes tener completa independencia de tus aplicaciones y de donde esta la librería fuente que se encarga de realizar todo el proceso.
Ahora en cada aplicación esta debe de contener sus controladores, modelos, y vistas, estas son independientes de la librería fuente y son únicos para cada aplicación.
Espero con esto te des una idea, busca un post mio con una estructura de la aplicación como yo la propongo.
Salu2