Please explain inconsistency with :erlang.map_get(key, map) in guards

map_get raises if the key does not exist on the map and or only executes the right-side if the left-side is false. Therefore, in the first case, when you do the map_get for a key that does not exist on the map, it will fail and never execute the right-hand side of or.