A little bit better than zeroing bins in order to filter
The Fourier transform of your window-shaped frequency response is its impulse response.  Evaluate the transform of your window function, look at its length above your desired noise floor, adjust the filter response as required to make the impulse length appropriately short, add zero-padding of this length to your original signal before the FFT, and you approach classic convolution filtering.  

The added zero-padding is required to remove or reduce artifacts due to circular convolution using FFT/IFFT fast convolution.  Knowing the length of the impulse response is required to know how much zero padding is needed.  Smoother (with wider transition bands) frequency responses tend to produce shorter impulse responses.  And using smooth window shaped functions tends to imply smoother wider transition bands (although there are many other methods that may do better).