If it would only complain on struct literals that are missing the value (and force a nil check before access if the zero value is nil to prevent panics), that would be enough for me. In that case, your Zero function and reflect.Zero can keep working as-is.
Then I fail to see the point, that is trivial to lint, just enable the exhauststruct checker.