That is what the Go developers claim. I don't see this abuse very often in C, either.
If a speed sensitive function in C is documented to work
for integers in the range 0 < x < 256, then it makes sense to put in an assert() as a courtesy to the users of the function.
It does not make sense in every situation to do a range check and return an error, or worse, "panic" (the latter didn't work for the Ariane 5).
Funny, because asserts in C are used to find bugs but not for "error handling and reporting".