У тебя в diction лежит ссылка на изменяемый (mutable) объект.
Получается в первой функции ты сохраняешь в локальную переменную x ссылку на словарь. Потом через эту ссылку изменяешь сам словарь. Во второй функции тоже самое, только читаешь.
Твое недопонимание состоит в том, что здесь не происходит копирования - т.е. в памяти всего один объект, на который есть ссылка в diction и обоих x'ах.
Если бы у тебя в diction лежало число или tuple (любой неизменяемый (immutable) объект), то такого бы не происходило.
Лучше всего посмотреть анимацию по
ссылке