Other languages don't tend to be as prescriptive about best practice as Go is trying to be here. Just because it's syntactically valid doesn't mean you should type it often. (Most language standard libraries are several contrasting styles shoehorned together. Although, to be fair, even Go suffers from this a bit.)
This guidance isn't heralding in a new age of programming, it's explaining the right way to think about a new feature within the language.
But - there are some things about Go generics that are particularly weird. The biggest one is that, in a lot of cases, they can actually just be another way to write runtime polymorphism, not static polymorphism as in languages like C++ (https://planetscale.com/blog/generics-can-make-your-go-code-...).
Isn't static polymorphism the whole point of generics? Runtime polymorphism was already possible through interfaces and type switches.
Also you can't type switch a generic variable, so runtime polymorphism with generics seems literally impossible.
Check out this excellent blog post: https://planetscale.com/blog/generics-can-make-your-go-code-....
It’s seems like a static polymorphism but not monomorphism, which also is implemented in Go generics but for simple types.