We might have different definitions of aliasing, so we maybe mean the same.. I think of aliasing as being everything that doesn't belong to the original, intended spectrum. I hope I got you right, you mean everything that is related to folding over and distinguish it from waveshaping-effects?! Since you said:
Pushing a sine wave toward Nyquist doesn't make it less of a sine wave. It doesn't alias.
So just compare analog vs. digital and name the errors that occur:
quantized, steppy time: foldover at f_sr
steppy values (raw voltage at the output): kind of square-waveshaper..
It's not aliasing around the artificial sampling rate set by [samphold~]. The distortion extends up to the global sampling rate's Nyquist frequency and aliases there.
I doupt that's the reason. This works at any samplerate, sothat the real one is negligible (if you don't want to make things more complicated). And the sin does what it would do in "realtime" as well.
E.g. Set the "new" sr to 5512.5 Hz (sr/8) and set the tablesize of your spectrum to 64.
Now watch the spectrum as the sine-freq goes beyond f_ny (=2756.25Hz): It comes back folded over!! Just like in realtime.. (beyond f_sr the whole procedure restarts...)
...the only thing that's different now is that "WE ARE DOGS" now (idk how frogs tend hear...), so we can hear past f_ny (..and see if you put the spectrums tablesize back to 512...)!
And what we see and hear is that the normal waveform get shaped more and more to a square when reaching f_ny! Or: the sqr-shape depends on f_ny -> the higher f_ny (rel. to f_osc), the less sqr-shape.
-So we have a sqare at f_ny. Itself has odd harmonics. So in the end we have sines at 1, 3, 5,... times f_ny!
Now as we sweep a sine up: from 0Hz to f_ny -> just sine;; from f_ny to f_sr (=2*f_ny! -> even!!) -> folded over (inverse) sine;; from f_sr to 3*f_ny (=odd ->"from sqr") -> "normal" sine again, and so on..
(Seen from time-domain: there is nothing past f_sr. Every oscillation past f_sr is just an osc "past 0Hz", thats due to the nature of a periodic signal..)
...Anyways, all those bandlimit- and "sinc"-approaches have one disadvantage, and that is the "ripple" of the last partial.
If I waveshape those these ripples can produce more undesired sounds than an aliasing-saw...
..So better no bandlimiting but the "upsample-filter"-method-> still aliasing but rather inaudible...
It seems in discrete time (and spectrum) in general one has to decide whether to keep harmonics OR the waveform as natural as possible.
Since I want both, I'll have to live with approximations...