So, a couple of test results:
- Single wall cubes print with the correct extrusion width, to .01mm
- Dual wall cubes print just as accurately
- Cylinders also print accurately (which, I think, rules out rounding issues with extrusion amounts, because they use lots of moves, not just a few)
Speed didn't vary the over extrusion, either -- prints printed at 20% are dimensionally identical to one printed at 100% at the same flow rate.
Interestingly, the test cubes seem to oversize slightly more than the cylinders do, which makes me wonder if its more of a problem with long move/extrudes not short.
I've even tested with and without hardware retraction (I usually print with), and the results are generally identical. Its bizarre. (This is because there's only one retract/deretract per layer on a single wall test cube, but many on a "normal" part.)
Lastly, I tested with and without mesh compensation, in the theory that mesh compensation could be causing a tiny squish that is causing the perimeter extrusions to be slightly too wide. Again, no difference. (Which isn't too surprising, as the compensated variance is less than .02mm), which wouldn't cause a nearly 50% over-extrusion.)
Even stranger, the test model I've been using, if I print it with 0 infill, still is oversized, but if I print with 0 top layers so I can measure the walls, they are correctly sized, in terms of thickness. Its just the space they're enclosing is slightly too big. That screams slicer to me, but prints sliced years ago are printing larger, too. And its not a sudden X/Y step calibration (which, of course, can't really vary, anyway) because if the steps were off, inner holes would also grow, not shrink.
I've even done extrusion tests in gcode doing 10,000 .01mm extrusions for the 100mm test, and 10,000 .01mm extrusions in a 1mm zig-zag to see if there's any variance in extruded volume during small steps and during movements. There was none, to the accuracy of my scale and calipers.
Hell, I've even replaced the nozzle, although a worn nozzle usually looks like under extrusion, not over extrusion.
That's why I was asking anyone had figured out the problem, because it appears to be something that has happened to multiple people in very consistent ways, which suggests its probably something stupid.
@GeneRisi -- I don't use paper to calibrate Z-height, I use feeler gauges. The z-height is precise. And, regardless, if it was off it'd only impact the first layer and things like bed adhesion, not a 20mm tall test print.