R1chJC,
Read at your own risk:
I have found a basic reason and a larger number of subtle reasons for the problem of disagreement.
The basic reason is that application of dimensioning and FCFs is effectively writing a program which is intended to predict/restrict a range of outputs. Understanding how to get a single answer out is tough enough, but there aren't many computer functions the typical person deals with that return sets of answers. In ordinary programming a programmer turns over the interpretation of the program to a computer and the computer does its thing and doesn't really have an opinion. Either the results are as expected or the user changes their program.
Within the limits of computational machinery, any computer given the same program will produce the same outputs. People aren't built that way. They bring a bunch of preconceptions and misunderstandings and when you give a bunch of them the same inputs they are likely to produce different outputs.
This is made worse because the interpretation training that people get, unlike the photo-masks that Intel and AMD and others use for their CPUs and the carefully built compilers and OS's, is done person-to-person. If you've experienced the 'Telephone Game,' where a story is whispered from one person to another, you can see the flaws can gather really rapidly. The ideal would be to go back to the standard, Y14.5 for example, but that standard is not written to educate via examples of correct and incorrect applications; it contains flat statements that aren't easily extensible.
Most of the subtleties come in via that 'Telephone Game' training. Certainly someone misheard something back when they were exposed to the -1982 version and have not only applied it ever since, but taught a couple of generations the same wrong thing. And some of those who have tried to reconcile with the writing and get rebuked for their effort.
The best answer for training I have come across was using VSA software which generated programming code to represent the effects of the FCFs and ran it through a random number generator to create compliant, varied results just like a factory would; however it depended on the pre-digestion of the dimensioning scheme to produce the nominal geometry. Since dimensioning schemes are used to communicate between humans more than being necessary for computation, this problem will be subject to human interpretation problems. When I write best I mean, because I didn't pay for it. In fact I got paid very well to spend most of a year doing nothing but using it; to the point that I learned that most problems in dimensioning and tolerancing are from the 'Telephone Game' training and a healthy dose of wishful thinking, not some underlying mystery of how to use trigonometry.
I have found the schemes I like best (note the word 'like') are ones where the values are easily recognized on one part as matching the dimensions on mating features on mating parts. The more difficult it is to verify that parts nominally fit together, the more likely the chance they won't. Such schemes sometimes require trigonometry to convert to the use of tools such as height gages, so inspectors often weigh in with their preferences based on the tools they have. Without a mating part then I fall back to liking the shortest path to the referenced datums; there are usually several equivalent schemes and choosing is a matter of previous (often unhappy) experience and avoiding a repeat.
One engineer decided that all holes in a beam (about 500 inches overall) should be baseline dimensioned, even though there were multiple patterns of holes. Of the ten patterns, he misplaced holes in five or six of them. Had they been dimensioned locally with a dimension from the baseline to the center of each pattern the mismatched holes would be instantly noticeable. Since there were hundreds of holes, it cost a large amount of time to go hole-by-hole to find the ones that didn't match.
Getting back to the software concept. Most programming could be done with binary switches loading individual instructions. Programming languages were developed in order to make what is supposed to happen more obvious to other programmers; the computers don't care. And even in programming, there are plenty of programmers who write working programs that are convoluted and excessively complex and hide or lose track of the fundamental method being expressed and produce undesirable results. It's small wonder the same happens on drawings.
Best of luck.