Mein Gefühl und ich könnte falsch liegen, wäre hier, das das Verhalten draußen nichts mit dem Sofa zutun hat.
3 Monate ist für einen Hund nun wirklich noch keine lange Zeit ein mega Urvertrauen zu seinem Menschen aufzubauen und gerade der Schäfi gilt ja gerne mal als Kontrolleti der Hunde. Das das Verhalten draußen dazu führt das er kein Sofaprivileg mehr haben darf finde ich komisch ehrlicherweise.
Mit dem Schnappen hat er euch deutlich signalisiert das er das ziemlich blöde gerade fand. Er durfte die ganze Zeit aufs Sofa, er mag euch ganz gerne, aber er hat noch kein Wahnsinnsvertrauen (was ja auch Ok ist für die Zeit) und dann packt ihr ihn am Halsband und zupft dran. Macht am besten eine Hausleine dran, so könnt ihr ihn auf jedenfall ohne direkten Kontakt sanft dirigieren. Ob Sofa ja oder Nein ist erst Mal eure Sache und vielleicht kommen da noch Stimmen dazu die ebenfalls sagen kein Sofa.
Grundsätzlich würde ich sagen, WENN er euch hätte verletzen wollen, dann hätte er das getan, er hat nur gewarnt und das ist auch gut und richtig so. Ich vermute mal, dein Freund hat sich vorgebeugt um den Körbchenrand anzufassen? Das kann schon einfach zu viel gewesen sein. Hund liegt da, in einer "hilfloseren" Position, es ist sein Reich und der Mensch kommt hin und beugt sich vor bzw drüber.
Ich persönlich kann und werde keine Einschätzung geben wollen ob das Verhalten nun übertrieben oder "normal" war, da bin ich einfach kein experte.