While editing a song, I tried to cut out the bass drum by applying a high-pass FFT filter, i.e. filtering out the low pitch of the bass drum. This resulted in the drum sound being severely quieted, rather than removed entirely. I know that higher overtones from the drum would still be present in the audio, but why isn't the lower pitch completely removed?
First of all, tell us more about the filter. Is it really a brickwall filter, or are you actually using a low roll-off or low cut-off filter? In the latter case, it is perfectly normal, when using a high cut-off filter, the low frequencies decrease with -6dB per octave below the specified frequency, and are not completely gone. Roll-off is the same, but with less dBs per octave. (either 4,5 or 3, can't really remember.)
If you did use a brickwall filter, there is another possible explaination:
A phenomenon in psycho-accoustics is the hearing of a low note where it is not there, but when the harmonics (= overtones) are there. Every base tone has different overtones. (Really, if multiple overtones are there, there is really not much ambiguity.) The human brain actually processes these overtones and adds the base tone.
In general a filter is not something that completely removes a given set of frequencies. Rather, it just attenuates them - cutting some percentage of them out. In extreme cases (kill EQs on DJ mixers come to mind) the attenuation is so much that it may as well be considered getting rid of it entirely.
Wikipedia has a pretty good graph of how a low pass filter cuts out higher frequencies in their article on Low-pass filters. A low-pass filter can be thought of as a "high-reducing" filter if that makes more sense.
This behavior shows up whether the filters are FFT-based, analog, whatever.