Go просто таки волшебный язык. Поймать сегфолт, вызвав метод у интерфейса, который ссылается на nil выходит вообще тривиально. То есть иными словами любой метод по-хорошему должен проверять не прилетел ли ему в ресивере nil, так что ли?
func (a *A) GetB() *B { if a != nil { return a.B } return nil }