Because I don't want unused variables to be something other people can opt-in to. I want all source code to be free of unused variables always.
> There are also other things the Go compiler doesn't enforce.
Importantly, there are a number of almost certain bugs the Go compiler is happy to let through without even a warning.
Like not rebinding the result of append(), or not checking the error returned by a function.
Why not pick a tool that's specialized for stuff like that, like a style checker. Put it into the build pipeline and let the build fail if the code doesn't adhere to your standards.