Как известно, ошибки тем дороже в исправлении, чем дольше они живут. Варнинги созданы специально для того, чтобы предупреждать о дефектах, которые могут привести к ошибкам. Их нужно править сразу, и это не сложно.
Определенные типы варнингов, можно просто отключить, если вы считаете, что они ошибочно вас предупреждают. Можно и нужно отключать для сторонних библиотек.
Использования варнингов для напоминания TODO, я считаю, следует делать тогда, когда это TODO должно быть реализовано в скором времени, имеет приоритет critical. На месяца запускать не следует.
В итоге. В проекте варнингов быть не должно, и их нужно сразу убирать:
* исправлять дефект
* Отключать классы варнингов, стороние варнинги.
* Реализовывать то, о чем они говорят, если это TODO.
P. S. По сути, все, что вы написали — логично, и не является взаимоисключающим. Тут не одно выбрать нужно, а все использовать, с умом.