Всё логично.
{} - это литеральная форма создания нового объекта, т.е. можно записать так:
new Object()
У этого инстанса установлен прототипом объект из Object.prototype, т.е.
Object.prototype == {}.__proto__ // true
Чтобы не было путаницы в голове, то следует усвоить, что у функций есть свойство prototype, которое декларирует ссылку на объект, который будет установлен как прототип для нового объекта, который будет создан через new функцияКонструктор.
***
Object.__proto__! = {}
Потому что Object - это функция и
Object.__proto__ == Function.prototype