A linear volume ramp will not cause (add least not add significant) distortion in my understanding of the matter, as you are multiplying samples with increasing or decreasing factors between 0.0 and 1.0. Looking at a larger set of samples along this ramp (easily a couple to dozens of 10k samples or more at regular 48kHz sample rate for sub-second to multi-second ramps), the signal stays mostly the same only being slightly louder/softer on either side.
Steep volume jumps (i.e. non-linearities) can however cause transient distortion (the “click” you can hear cutting from silence to a loud signal or turning a loud signal off to perfect silence in an instant). Which brings us back to the point of the OP: Trying to alter individual sample values to create a “Zero Crossing”, you will almost for sure create a transient signal with so many high-order harmonics you will easily break Nyquist frequency limits, and thus create clicks.