There is actually a way to remove distortion from DACs to generate near pure tones. You switch a low distortion low pass filter into or out of the chain and loop it back to an ADC. The harmonics caused by the ADC stay the same, the harmonics from the DAC change according to the transfer function of the filter. Thus you can calculate them and correct them in the signal you send to the DAC, iterate that a couple of times for a near pure tone. Of course the resolution of the DAC sets a lower limit, so you should do this with a high resolution DAC, though it can be a pretty shitty one, as long as it's consistently shitty.
See the paper "Low Cost Ultra-Pure Sine Wave Generation with Self Calibration", they used two 16 bit DACs resistively combined for a 140 dB THD sine generator AFAIR.