Downsample: resample vs antialias fitlering + decimation
I will explain why method 2 is often a better choice over method 3.
The frequency domain approach is equivalent to the &quot;Windowing&quot; method of filter design- in that to do that approach correctly you should window your data before taking the FFT. For an anti-alias filter design in the time domain approach, the least squares filter design algorithm outperforms window design approaches. (See this post for a detailed discussion on that: FIR Filter Design: Window vs Parks McClellan and Least Squares). For time-domain filters for decimation and interpolation applications, the least-squares filter design is a better choice over equiripple because of the stop-band roll-off: for equiripple the stop-band is at the same level in each aliased frequency band resulting in more overall noise folding in than you would get with least-squares.
Side Note: If you observe the coefficients for an equiripple design, you will often observe (if the filter isn’t too long) two slightly larger &quot;impulses&quot; toward the beginning and end of the filter impulse response (the coefficients of the filter is the impulse response). Remove those larger coefficients near the tails of the response and the equiripple design will also have the desired feature of stop-band roll-off! For further details on that please see: Convert a Park McClellan FIR Solution to Achieve Stop-band Roll-off
Further the least-squares (and equiripple) design tools in Matlab/Octave/Python feature multi-band filter design which is ideal for decimation (and interpolation) applications since the images are limited to distinct bands. Thus you can optimize the filter rejection to just the frequency locations that would fold in, further optimizing the solution given the same number of taps. Below is an example spectrum I have recently shown for interpolation and the resulting multi-band filter designs for both least squares and equiripple appropriate for eliminating the images (this is the interpolation filter to grow the zeros that are inserted to their interpolated value by eliminating the images, the same would apply to the decimation filter where we want to reject these same image locations prior to throwing samples away). This also converts readily to an efficient polyphase filter structure by mapping the same coefficients row to column in the polyphase filter, as detailed in other posts here.
In this plot the blue is the desired spectrum along with its images, and the red and the black show the multi-band filter response for the two different filter design choices (red is least squares and black is the Parks-McCelllan or equiripple design). This would be equivalent for a decimator except the images would be noise or other signals that could fold in during the process of throwing away samples for decimation. Given the same number of taps observe how the total noise that would fold into band is significantly less with the least squares filter design.

Note: If you have enough samples so as to not truncate the desired response, you could certainly still do the least squares filter design approach in the frequency domain ---- the filtering (convolution) described above that is done in the time domain is equivalent to multiplying in the frequency domain- but to do this properly would necessitate a lot more samples to ensure sufficient tails of the kernel (the frequency transform of the filter's impulse response) are included.