If you are going to use FFT, you'll have to compare more than one number (i.e. the frequency bands or "bins") and you are going to have to normalize or otherwise compensate for the change in level. i.e. If you reduce the volume by 6dB, all of the frequency components should be reduced by 6dB. If the spectrum distribution is different, you've done more than alter the volume...
I assume there are distortion analyzer algorithms that work with pure test tones. Testing music for distortion... I dunno...
If you are simply reducing (or boosting) the volume, you can re-boost (or reduce) the signal and subtract from the original to get the difference. (If there's a phase/timing shift, it will show-up big-time when you subtract.)
If you are just reducing the volume (multiplying each sample by the same fractional number), I wouldn't worry about distortion. If you are boosting the volume, there is the potential for clipping (if you are using an integer format), but it's fairly easy to check the numbers before boosting or before converting to integer. As long as you're doing it right and checking for clipping there's nothing to worry about.
Volume change is a simple algorithm, probably the simplest thing you can do. If something goes wrong, chances it will go very-wrong and you won't need any fancy analysis to notice it!
Now, there are rounding errors when you reduce volume, and the signal-to-noise ratio is reduced if you reduce the signal. But as long as you don't re-boost the volume, the actual/absolute level of noise & distortion is not increased. (Essentially the same thing happens when you reduce the signal with an analog volume control.)
I want to compare these files to confirm that my "software" has not shifted the waveform...
Time/phase shifting is a bit more difficult. But again, there is no reason to time-shift when you adjust the volume. (If you are filtering, most filters do introduce phase shift.)