Зарубежные друзья помогли разобраться в вопросе:
https://stackoverflow.com/questions/68544990/why-d...
Итог: свойство offsetWidth возвращает ширину элемента вместе с шириной полосы прокрутки (если она имеется) для всех элементов (даже для body),
кроме document.documentElement.
Более того, в процессе поиска ответа на вопрос наткнулся еще на одну интересную деталь уже для свойства clientWidth: данное свойство предлагается использовать на document.documentElement в качестве «линейки» для измерения видимой ширины документа (видимой области содержимого) в том числе на популярном
обучающем ресурсе.
Однако хотелось бы акцентировать внимание на том, что
clientWidth на document.documentElement — это особый случай, возвращающий именно ширину
видимой области содержимого. Если мы установим для document.documentElement свойство width = 180px (или 300px, 400px, 600px — неважно), а затем проверим document.documentElement.clientWidth, то не увидим установленного значения в 180px, а увидим ширину видимой области содержимого (за исключением ширины полосы прокрутки, если она имеется). Свойство offsetWidth в этом случае покажет другое, правильное значение: 180px + внутренние отступы + границы (не включая, как мы уже выяснили, ширину полосы прокрутки, если таковая имеется).