Нашел причину.
Ширина родительского блока высчитывается динамически средствами js и равна текущей ширине вьюпорта (при этом максимальная ширина = 1900).
высчитывается не при ресайзе, а при ренджеринге родительского блока. (слайд-галерея)
таким образом, родитель элемента .banner НЕ шире вьюпорта, он встраивается в ширину окна.
фоновое изображение при этом отображается в 100% масштабе и его ширина опять же 1900.
все-таки я затупил.)
спасибо за ответы.