Por que os valores do mapa não são endereçáveis?

Ao jogar com o código Go, descobri que os valores do mapa não são endereçáveis. Por exemplo,

package main
import "fmt"

func main(){
    var mymap map[int]string = make(map[int]string)
    mymap[1] = "One"
    var myptr *string = &mymap[1]
    fmt.Println(*myptr)
}

Gera erro

mapaddressable.go: 7: não pode usar o endereço do mymap [1]

Considerando que o código,

package main
import "fmt"

func main(){
    var mymap map[int]string = make(map[int]string)
    mymap[1] = "One"
    mystring := mymap[1]
    var myptr *string = &mystring
    fmt.Println(*myptr)
}

funciona perfeitamente bem.

Porque isto é assim? Por que os desenvolvedores do Go optaram por tornar certos valores não endereçáveis? Isso é uma desvantagem ou um recurso do idioma?

Editar: Sendo de um background C ++, não estou acostumado a issonot addressable tendência que parece prevalecer no Go. Por exemplo, o código a seguir funciona bem:

#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
    map<int,string> mymap;
    mymap[1] = "one";
    string *myptr = &mymap[1];
    cout<<*myptr;
}

Seria bom se alguém pudesse explicar por que o mesmoendereçamento não pode ser alcançado (ou intencionalmente não foi alcançado) no Go.

questionAnswers(1)

yourAnswerToTheQuestion