El "para" es por "control sobre los archivos que descarguen" y el "por" podría ser por seguridad también.
Si tu tienes una Base de datos, un archivo de texto plano .. o un simple array donde relacionas el archivo "id" con su ruta de ubicación en el servidor .. o bien si el archivo está en tu BD integramente como un campo Binario .., bajo ese "ID" (identificador .. sea numerico, texto .. o como sea) .. vas a obtener "donde está" tu archivo y de ahí .. php será el que lo entregue al navegador para su descarga.
Con eso, puedes tener tus archivos en un lugar seguro fuera del "document root" para que no queden accesibles desde una llamada tipo
http://www.tal.ta/archivo.tal
Así mismo .. como usas un "identificativo" para acceder a tu archivo y un único script para ello .. puedes implementar sistemas de contadores/estadísticas y validación incluso de quien, cuando y donde descarga ese archivo.
Un saludo,