Alfresco stores its meta-data about files and nodes in the database. It stores the file content in a nested structure on the filesystem.
It is our belief that it is better to use the most appropriate system for the job, e.g. the database is best for storing structured row-based data, and the filesystem is best for storing lumps of binary data such as file content.
The directory structure used on the filesystem exists to help break up the (potentially huge) number of files in the system into multiple directories. Also the filesystem cannot handle some characters for names of objects that the database can - e.g. the *\/" characters will upset the filesystem if used in a filename etc. where as if we store the meta-data about the files in the database we can use any characters for object names.
Thanks,
Kevin