А всё очень просто. :last-child - находит любой элемент, являющийся последним в его родителе. Когда вы ищите с помощью селеткора `:last-child`, то не учитывается тип элемента.
вам может показаться, что вы ищите последний <li>, но нет вы ищите последний элемент в родителе. Это легко проверить. Для этого нужно сделать блок с разными элементами
вы не увидите фона ни на <div class="element">div</div> ни на <p>p</p>. Потому что селектору :nth-child последний элемент <p> не соответствует из-за отсутствия класса .element.