I've been updating my wavetables in a different way since last week.
instead of reading out the waves from the wavetable module directly, I first "record" the wave from the external wavetable into an internal array of the same length as a single waveform in the wavetable.
During this recording a lowpass-filtering is applied realtime, re-writing the internal buffer constantly, adjusting the cutoff to the pitch being played (the higher the pitch, the lower the cutoff), turning it into a sinewave. This re-recording itself, recording this filtered signal, is also behaving like a filter, only applying the new, filtered, shape partly each loop (minimising differences which might cause unwanted overtones).
So when playing higher and higher notes, the internal wavetable that is read out by the phase of the oscillator will gradually turn into a sinewave, which can be played at any frequency up to nyquist/2 without creating unwanted frequencies.