Instead of padding $x_1[n]$ and $x_2[n]$ then taking
$$ \text{iDFT}(\text{DFT}(x_1[n])\cdot\text{DFT}(x_2[n])), \tag{1} $$
assuming we know $x_1(t)$ and $x_2(t)$, and their FT's, what if we do
$$ \text{iDFT}(\mathcal{F}(x_1)[n]\cdot\mathcal{F}(x_2)[n])) ,\tag{2} $$
where $n$ is longer and result is then trimmed?
It's what's used in Synchrosqueezing Wavelet Transform (pg 11-A) to implement CWT, which I'm porting to Python from an open-sourced MATLAB repo.
The clear advantage is, we're directly sampling the continuous, "exact" FT instead of working with DFT's, so we start off a "step closer" to finish in convolution theorem. The problem is, what about aliasing? Zero-padding is there because it's circular convolution. Instead it uses extension padding, then trims whatever it pads post-iDFT.
Comparing it against direct convolution, it seems to fare same, better, or worse in CWT, depending on signal. But I have no idea what it's doing or why it works; what's going on? Is this some alternative convolution theorem?
Update: This seems to be a discretized convolution theorem relying on an analytic wavelet with tight frequency-domain support and entirely zero for half its spectrum. In fact, zero-padding on both sides (not just right) does work. Though I'm still not exactly sure how time-domain aliasing is eliminated or suppressed into negligibility.