I'm not sure all the new warnings are good, at least not as default.
In the case of
void f(string filename) { }
there might not be a choice of removing the argument.
In the case of e.g.
foreach(my_mapping; string name; string value) werror("%O\n", value);
the unused name-variable provides possibly helpful documentation. I think what you will see in practice is that programmers will do
foreach(my_mapping;; string value) werror("%O\n", value);
and not
foreach(my_mapping; string name; string value) { name; werror("%O\n", value); }
resulting in a codebase that is harder to work with and extend.