Bom dia Andris tudo bem? Em CSS existe sim um efeito que chamamos de "cascata", ou seja, a regra que vem depois, sobrepõem a regra anterior.
Exemplo:
h1 {
color: red;
}
h1 {
color: blue;
}
Nesse caso eu estou atribuindo cores ao mesmo seletor, que no caso é a tag h1. Mas somente a cor azul será exibida pois foi a última lida pelo CSS, que lê o arquivo de cima pra baixo.
No exemplo que você postou, o que acontece é o seguinte:
Você está definindo a tag de título "h2" com position: absolute, ou seja, ela perde sua referência de posição atual, ela fica perdida na tela.
E logo depois você coloca a tag ul(lista não ordenada) com position: relative.
Logo, levando em consideração seu arquivo HTML, a tag h2 vai ter agora uma referência para se posicionar na tela, você colocou a "ul" como referência para a tag h2. E no caso a ordem de regras no css não importa, pois você está utilizando dois seletores diferentes "h2", e "ul". O CSS lê isso tão rapidamente que não interessa colocar um position absolute primeiro, antes de um position relative.