Возможно я просто не совсем правильно понял суть вопроса, но дело как раз во float, я более чем уверен.
Вот пример без float. Видно что блок с шириной 100% учитывает внутренние отступы родителей, подобная ситуация может всплыть только когда элемент был вырван из общего потока, что как раз и делает float. По подобной логике работает и все значения position, кроме static. https://jsfiddle.net/wpm0j5qr/3/
Вот пример без float. Видно что блок с шириной 100% учитывает внутренние отступы родителей, подобная ситуация может всплыть только когда элемент был вырван из общего потока, что как раз и делает float. По подобной логике работает и все значения position, кроме static. https://jsfiddle.net/wpm0j5qr/3/