sorted принимает итерируемый объект.
sorted(publist, ...), где publist - это словарь, итерирует по ключам словаря, так работает итерация для словаря в питоне.
sorted(publist.items(), ...) - итерирует по кортежам (tuples) вида (ключ, значение) из словаря.
Именно от этого и такой выход из sorted. Она отдает отсортированное, то что приняла.
Кстати, лишь недавно в питоне (3.7 официально и 3.6 по факту, вроде) словарь по умолчанию помнит порядок ключей, добавленных в него.
Возможно стоит продумать, что и в какой точке кода важнее: быстрый доступ к данным по ключу словаря, или же работа с отсортированными данными. Можно отсоритовать в тот момент, когда это действительно нужно.