Filtering in frequency and time domain
Some time ago I wrote some codes just to test some filters methods, and i could see how can be hard make certain frequencies disappear completely, some methods cause ripple effects in the signal and when you apply FFT on the filtred signal to see the frequency response, you note that the frequency you want to eliminate still be there, attenuated, but you can still see!

Lets go, three(3)  sinusoidal concatenated at 250 hz, 400 hz and 900hz sampled in 8000hz and I will try to eliminate 900hz from the original signal!

My First test, AKA a very simple equalizer in Frequency Domain, calculate the dB attenuation 10.^(dB/20) and multiply by the FFT bin that you want eliminate, for dB attenuation -24dB my result was:



My Second test EQ biquad filter by Robert Bristow-Johnson (time domain), for dB attenuation -24dB my result was:



My Third test biquad LPF by Robert Bristow-Johnson (time domain), my result was:



And my last test using Sinc Filter (Frequency Domain), my result was:



And that's all, in short, everything depends on what you really need !