Я считаю, что варнингов или не должно быть вообще или должно быть минимальное количество.
На работе пару раз по моей инициативе пытались избавиться от всех варнингов, но попытки не были полностью успешными.
И дело не в том, что это просто хороший стиль разработки. К тому же не все варнинги действительно опасны, просто если в проекте их всегда несколько сотен, то
заметить несколько новых, которые только что появились и, возможно, сигнализируют о серьезных ошибках - не так просто, как в случае, когда
изначально их не было. Поэтому мое мне - нужно бороться с теми, с которыми это сделать реально. Часть ( в несерьезности которых Вы совершенно уверены ) можно отключить,
оставшиеся должны представлять штучные экземпляры.
Можно попробовать еще сохранить проанализированные и признанные неопасными варнинги и написать скриптик, который будет при каждой сборке проверять, не появились ли новые - но это уже немного тянет на изврат.

P.S. Последнее время чаще пишу на C - там у нас -Werror корпоративное правило.