if you let people use reflect in non testing, that's on your reviewers and training.
To take one common use case for reflection, Json marshalling/unmarshalling, if I were writing an application that needed to do this, and for some reason I could not use a library, I absolutely would not use reflection, but would write code that specifically targeted the classes that I was marshalling/unmarshalling. Conversely, if I’m writing a library, I don’t know what those classes are so I must use reflection to manage this. That’s the key difference here.
[0] https://cs.opensource.google/go/go/+/refs/tags/go1.19.5:src/...