General idea of directory structure of each site / application (Tangra based or not) is to be logical and in the same time convenient for development, deployment and maintenance.
Usually when site is developed that happens on inhouse development server for which you have (directly or indirectly (via coleague sysadmin)) full control. In case that there is a conflict between configuration required by the site and the configuration of the server - you can easyly change the server configuration to reflect your needs. Of course, that is not the case when it comes to deployment. Most sites are installed on so called "shared hostings" where server configuration is "locked" and it is almost impossible to convience hosting company to change it. Because of that directory structure of Tangra site was developed with flexibility in mind. Directory structure of a new site is provided by module directory_structure_base.
Top levels directories of each Tangra site are:
Note: Please note that paths of the above dirs are not fixed. For example your /htdocs may be /public_html or /www.
Please note that in many dirs there is subdir modules. Such subdirs are used solely by modules and usually you don't have work there.