Retornar um mapa não modificável

UsingCollections.unmodifiableMap(...), Estou tentando retornar uma visualização não modificável de um mapa. Digamos que eu tenho o seguinte método,

public final Map<Foo, Bar> getMap(){
    ...
    return Collections.unmodifiableMap(map);
}

Por que é legal em outro lugar fazer o seguinte,

Map<Foo, Bar> map = getMap();
map.put(...);

Isto não lança umUnsupportedOperationException como eu pensei que seria. Alguém pode explicar isso ou sugerir como eu posso devolver com sucesso um mapa verdadeiramente inalterável?

questionAnswers(3)

yourAnswerToTheQuestion