Another precedent for the idea was the use of a "behavior" to specify the methods which a Smalltalk object can receive. Basically, it was realized that the question of the class hierarchy for an object was an implementation concern which the users of an object should not care about. So early Smalltalk books started using the word "behavior" to refer roughly to something like a Go "method set". When Smalltalk standardization happened, the class hierarchy was almost entirely left out of the standard, instead relying on these behaviors to say what methods an object would support. Implementations could then make their own decisions about how to factor those into classes for implementation.
The main difference between these behaviors and Go's interfaces is that a behavior in Smalltalk is only a way to talk about the language; there is no such thing as a behavior datatype in Smalltalk, no syntax for specifying them, etc. It's a way to document what things do, but not something checked by the compiler. However, as soon as you have typed variables, and you would be deciding whether the types should be classes or behaviors, you would certainly pick behaviors (and thus something like Go's interfaces) as superior to classes (like Java or Python typically use).
Thomas