Что же здесь происходит? Лучший способ узнать, попробовать поиграться с этим кодом:
print(type({{}})) # Без звёздочки
Вывод:builtins.TypeError: unhashable type: 'dict'
Когда мы не используем звёздочку, Python интерпретирует это как попытку создать вложенный словарь. Однако, вы не можете создать словарь, который содержит другой пустой словарь, так как ключи словаря должны быть хешируемыми. В результате попытка это сделать приведёт к TypeError.
Но если вы используете звёздочку с пустым словарем, то Python "распакует" этот словарь, даже если там нечего распаковывать. В итоге мы получаем пустое множество (set).
Вот такой вот интересный трюк. Кстати, если вы знаете что-то подобное, то делитесь в комментариях. Может викторину из этого придумаем :)