Many TeX installations currently store large numbers of related files in single directories. Frequently, for example, all TFM files go in a single directory and most, if not all, TeX input files (LaTeX style files, Plain TeX macro files, etc.) go in another single directory.
This monolithic arrangement makes maintenance of a TeX system difficult: it is difficult to determine what files are used by which packages, what files need to be updated when a new version is installed, or what files should be deleted if a package is removed. It can also be the source of catastrophic error if two or more packages happen to have input files with the same name.
Therefore, the TWG felt each package should be in a separate directory. But we recognized that explicitly listing all directories to be searched would be unbearable. There are dozens of packages a site may wish to install. Aside from anything else, listing that many directories would lead to paths many thousands of characters long, overflowing the available space on some systems.
Also, if all directories are explicitly listed, installing or removing a new package would mean changing a path as well as installing or removing the actual files. This would be a time-consuming and error-prone operation, even with implementations that provide some ability to specify the directories to search at runtime (in a TEXINPUTS environment variable or a system configuration file, for example). On systems without any form of runtime configuration, it would require recompiling software, an intolerable burden.
As a result, the TWG concluded that a comprehensive TDS required that implementations of TeX must support some form of implicit subdirectory searching. In other words, it must be possible to specify that TeX, METAFONT, and their companion utilities search in both a specified directory and recursively through all subdirectories of that directory when looking for an input file. We encourage implementors to provide subdirectory searching (at the option of the installer and user) for all paths.
The TDS does not specify the order in which subdirectories are descended. It follows that two identically named files in a search path leads to ambiguity. The TDS does not define which one is found. In order to resolve this ambiguity, a search path must be specified that lists the respective subtrees in the desired search order.
The TDS does not specify a syntax for specifying recursive searching, but we encourage implementors to provide interoperability wherever possible. See Section A.4, Subdirectory Searching Syntax for a list.