Да, это поведение в расчете на спецификацию c ( ref. ):
Наблюдение сработает, когда наблюдаемый элемент будет вставлен / удален из DOM.
Наблюдение сработает, когда для наблюдаемого элемента будет установлено значение none.
Наблюдения не срабатывают для незаменяемых встроенных элементов.
Наблюдения не будут вызваны преобразованиями CSS.
Наблюдение будет запущено, когда начнется наблюдение, если элемент визуализируется, а размер элемента равен не 0,0.
Таким образом, в вашем случае, либо элемент еще не был в DOM, и случай 1 вызовет его срабатывание, либо он уже был, и случай 5 будет (хотя в DOMContentLoaded это должно быть 5;) .