You aren't wrong, but the strongest arguments for generics in go (and in many other languages) have to do with the abstractions around concurrency.
In a language that supports generics you have a fighting chance of adding good concurrency pattern support above and beyond what the designated language gatekeepers designate. In go, you have to resort to codegen.
Golang: I still want generics
This post has little to do with channels.