D&T (see Title of the 'Y14.5 document) is a symbolic programming language overlaid on a geometric representation that designers use to tell what part variations are acceptable. Each requirement is an 'IF' statement and the part is only acceptable if all of the results of the 'IF' statements are 'TRUE' Each symbol is a function that controls what sort of variations will be acceptable.
There are close parallels between the 'Y14.5 series of document versions and other programming languages. Understanding why programming languages** can result in predictable outcomes and how 'Y14.5 sometimes does not, should guide people into better understanding of how to improve 'Y14.5 given the lack of an impartial 'Y14.5 interpreter***.
It really should be less related to drafting, which is the menial task of making drawings, but since it appears on drawings it seems hopelessly inextricable. It is more closely allied with geometry, trigonometry, statistics, and stress/strain and other engineering analysis.
**(though not necessarily the programs they are used to create)
***There is one, developed by VSA, that handled a large subset of cases in a direct and understandable manner. It created C code that was compiled and executed to simulate the results one might get from a factory run of parts. One could examine the code to confirm it would do what the symbology indicated was acceptable. Now it's buried in Siemens under Tecnomatix. Since it was compiled, one could easily tie it to other software, such as combustion analysis software that would show the effects on combustion in engines as a result of engine component variations.
Too many think it is 'drafting' and don't care about the results.
As an aside - C is the programming language that most widely used operating systems are now or were originally built with (UNIX, Linux, and Windows, for example) and what a significant amount of the telecom and internet industry depends on. Solidworks was likely written in C or its successor C++. Its most endearing attribute is that it was developed as a tool by smart people who used the tool to develop UNIX. Most other languages were developed either as educational devices (BASIC, FORTH, PASCAL) or as utilities for others (FORTRAN, COBOL, VBA, JAVA) so their goals were different than the ones for creating C. In all cases the creators had to build software that demonstrated their interpretation of the rules.
ASME has not developed an interpreter so no one can see how they would interpret their rules for various situations, leaving users to make individualized guesses. People being people, they bring their own backgrounds, some more complete than others, to their interpretations. Without an unbiased interpreter that does not change it's opinion based on the background of a user, trying to use 'Y14.5 can result in very different opinions of the likely results and very different sets of parts produced and accepted to a single set of requirements.