So um conselho quanto a sua logica em si, <ul> - unordered lists, nao sao feitos para terem children que nao seja <li> -list-item's caso voce esteja aprendendo as funcionalidades no CSS para mirar ao nth-child, last-child.... seria ideal que voce mantesse a regra do elemento, especialmente por ADA Compliance para pessoas com incapacidades e tambem para evitar bugs inexplicaveis como que voce esta vendo agora.
Agora quanto a resposta:
last-child sempre ira focar apenas ultimo elemento de um grupo de irmaos (siblings), entao a nao ser que voce tenha outro ul nesse grupo, a logica: ul:last-child nao funcionara como voce espera, como wldomiciano mencionou, o certo seria li:last-child para voce ter o amarelo no ultimo li elemento, e caso voce queira incorporar uma span dentro de uma ul, certifique-se de criar um wrapper li em volta da span como por exemplo:
<ul>
<li>
<span>I can put whatever I want in here</span>
</li>
<li>
<ul>
<li>And even make something crazier, like this :O</li>
</ul>
</li>
</ul>
Ou seja, mesmo que o seu codigo estando incorreto na forma da logica, o CSS ainda esta tentando aplicar as regras para voce, que no final acaba piorando ainda mais a situacao.
Veja essa documentacao para entender as limitacoes dos elementos que voce queira testar/utilizar.