Lo que sucede es que .NET trae lo que se podría describir como una plataforma de ejecución. Antes de .NET, para cada programa ejecutara debía incluir todas las referencias y componentes necesarios. Esto traía problemas cuando tenías varios programas con diferentes versiones de la misma librería o control se instalaban en la misma máquina. De la misma manera, el modificar los paths de distintos archivos o librerias podría traer problemas. Los problemas con archivos y librerias eran más frecuentes.
En .NET todo está encapsulado en ese Framework, y las aplicaciones desarrolladas para el apunta al mismo. Es como si todas las libreria y controles basicos estan en la "plataforma de ejecucion". Solamente los controles o referencias especiales deberán trabajarse aparte. En resumen, los archivos necesarios para la ejecucion eficiente... ese entorno de desarrollo que tu mencionas, reside en la PC del usuario y no en el paquete o paquetes de programas.