Since the data in the mentioned experiment are "exact" measurements without uncertainty, the data is being treated as infinite (or rather, machine) precision, where the percentage difference would also have to be reported at machine precision, which is what the author is getting at:
>>> 100 * ((37/45) / (312/401) - 1)
5.676638176638171
However, assume that the same kind of data came from a sensor with some uncertainty (say, 2 digits precision), then you could have, within that uncertainty bound, L = 46 (instead of L = 45, etc.), R = 400 (and still L+R = 446), which would give
>>> 100 * ((37/46) / (312/400) - 1)
3.121516164994431
Obviously, this is a huge difference, which is why propagation of significant digits needs to be considered if there is any uncertainty in the data. And in that case adding more digits will not buy you anything.
The author's case is a special case where the values are "exact" and therefore you need more precision in the reported percentage value. But it is often not applicable in science when measured data has uncertainty.