Good question, and like you have said most do it from experiance rather than direct measurement.
If the cable is stranded the number of srands normally would indicate its size, and there are charts for identifying these.
Its very much the same for imperial sizes, which where almost all exclusively stranded.
It is quite common and perfectly acceptable to put the new metric size nearest to the old imperial on the pir providing that it is not guessed at.
Another way to determine the csa is to do a measured continuity test, however this would involve testing a cut piece minimum length of 0.5 meters.
So not very practical.
Older cables will look larger in csa than they actually are, this is because of the process of applying the insulation was not as good, or efficient as it is today.