Pzz>Вообще-то, и gcc и clang выдают предупреждение в этом месте.
Так никто и не утверждает, что warning отстутствует.
Вопрос в том, почему это warning, а не error.
В топике писали, что компилятор не может в общем случае понять, что return нужен/или не нужен (типа std::abort где-то внутрях вызывается).
Ну пусть будет false-positive, не вижу тут большой проблемы (в C# это например не проблема).
P.S. да я знаю, что можно конкрентый warning переключить в error. Но тогда нужно руками пройтись по всем таким warning`ам и составить список того, что нужно переключить, а что оставить (unused variable)