Volver un mapa no modificable

UtilizandoCollections.unmodifiableMap(...), Estoy tratando de devolver una vista no modificable de un mapa. Digamos que tengo el siguiente método,

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

¿Por qué es legal en otros lugares hacer lo siguiente?

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

Esto no arroja unUnsupportedOperationException como pensé que lo haría. ¿Puede alguien explicarme esto o sugerirme cómo puedo devolver con éxito un mapa verdaderamente inmodificable?

Respuestas a la pregunta(3)

Su respuesta a la pregunta