The unused parameter is not an actual error. It is not uncommon to not need to use all parameters in, say, an implementation of a lambda. Returning uninitialized data, however, is an actual error. It should not be a warning, it should be part of the core language.