Trocar somente quando não há memória livre é o caso apenas se você definir swappiness
para 0. Caso contrário, durante o tempo ocioso, o kernel trocará a memória. Ao fazer isso, os dados não são removidos da memória, mas uma cópia é feita na partição swap.
Isso significa que, caso surja uma situação em que a memória esteja esgotada, ela não precisará gravar no disco ali e ali. Neste caso, o kernel pode simplesmente sobrescrever as páginas de memória que já foram trocadas, para as quais ele sabe que possui uma cópia dos dados.
O parâmetro swappiness
basicamente controla o quanto isso é feito.