Vielen Dank, MrMurphy, für die ausführliche Klarstellung!
Mir war nicht bewusst, dass ein seitlicher Scrollbalken auf Kosten der Breite des HTML-Elements geht.
Ist ein solcher vorhanden, erzeugt daher die Angabe width: 100vw (für body) stets einen horizontalen Scrollbalken.
Bei width: 100% muss margin:0 gesetzt sein, um den horizontalen Scrollbalken zu verhindern.
box-sizing: border-box hat (natürlich) keinen Einfluss.
P.S. Danke auch für den Link.