There's fundamentally no such thing as a zero crossing. You might have two samples on either side of zero, but you still don't have a sample *at* zero, so in the general case, truncating one of them to zero and starting/ending there is still going to give you distortion and/or noise. Obviously there may be cases where one of them is close enough to zero for this not to be be an issue, but it's not a general method.
Ardour applies declick fades every time the transport starts and stops. You can read about how we do it here: