Но почему конкретно при ширине в 100% слева отступ можно менять, а справа нет?
"Начальная точка" (x=0, y=0) HTML-страницы является верхним левым углом. А т.к. у вас задана фиксированная ширина, то, соответственно, справа уже нет места для отступа.
*Чисто мои предположения, не гуру CSS)