I'm of the opinion that all warnings should be handled elegantly, in a log file somewhere. The logs themselves need to be regularly recycled in a production environment, but the warnings must remain in the software or I'll get a massive migraine just thinking about troubleshooting.
It's useful to write software with a DEBUG switch that offers more warnings. This can be pretty easily incorporated: just use a logger with log-levels and be diligent about it.
Warnings may offer a performance hit at the machine level, but these days the programmer's performance costs more than processor's.