Повторение. Это создает конечный автомат "под покрытиями", который помнит, где Вы были на каждом дополнительном цикле функции, и берет оттуда.
Вот другой способ сделать это.
<style>
.padded-element{margin: 0px; padding: 10px;}
.padded-element img{margin-left: -10px; width: calc(100% + 10px + 10px);}
</style>
<p class="padded-element">
<img src="https://images.pexels.com/photos/3014019/pexels-photo-3014019.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940">
</p>
Вот некоторые примеры на repl.it: https://repl.it / bryku/LightgrayBleakIntercept