Является ли контекст размещения абсолютно позиционированного элемента по умолчанию элемент body?
Если вы указываете position: absolute элемент всегда будет выходить из потока и двигаться относительно body, но если у вас есть родительский элемент, в котором указан position relative и вы его ребенка позиционируете абсолютом, то он будет смещаться относительно родителя
На самом деле Филатов всё уже доступно объяснил: в соответствии с принципами позиционирования (barelyfitz, MDN), у абсолютно позиционированного элемента контекстом расположения является ближайший родитель с позиционированием отличным от статичного. К тому же в вашем случае фраза "абсолютно позиционированный блок имеет своим контекстом размещения окно браузера" как раз и означает, что контекстом является body. Это вот такая вот неудобоваримая условность, связанная с body.
Каждому отображаемому элементу DOM соответствует какой-то блок в макете. Элемент body является исключением: вы можете позиционировать соответствующий ему блок и это будет влиять на дочерние элементы, но некоторые его стилевые свойства будут применяться ко всему окну. Так происходит потому что body является не/посредственным контекстом расположения для всех отображаемых на странице элементов, он является корневым, то есть как бы и представляет собой окно.
Заметьте, что пример на MDN аналогичен вашему, и вот что они пишут:In the example below, a positioned ancestor doesn't exist and box ... is positioned absolutely relative to the immediate ancestor (the <body> of the iframe here)
То есть у них происходит то же самое: абсолютно позиционированный элемент располагается в контексте окна, а не в контексте блока соответствующего body, но они всё равно говорят что "блок позиционирован относительно body". Стоит считать это условностью: хоть body и представляет собой окно, но он всё же является элементом DOM, а поэтому в макете для него обязан существовать соответствующий блок. Такая вот двоякая сущность. Не очень понятно, конечно, но, возможно, так сложилось исторически, я не смог откопать ничего по теме.
В любом случае, это самый незначительный из сюрпризов которые может выкинуть CSS, например невозможность отрезать overflow только по одной оси - это покруче будет.