Como você provavelmente sabe, o kernel do Linux usa o máximo de memória possível para armazenar as coisas em cache. É por isso que a saída do free parece que estou quase sem memória, de acordo com a linha de cima:
$ free -m
total used free shared buffers cached
Mem: 3168 2963 205 0 155 1263
-/+ buffers/cache: 1543 1624
Swap: 494 86 407
mas a parte importante é a quantidade de RAM que os buffers e o cache não estão usando
-/+ buffers/cache: 1543 1624
Ainda assim, todos os 205 MB de memória são usados nesse exemplo, mesmo que seja por cache. Como foi explicado para mim (ou pelo menos, como eu entendi), se um programa de repente pede > 205 MB de memória, esse pedaço sai da troca, para que o processo possa ter o pedaço de memória, então ele sai da troca uma vez que ele tenha uma chance de liberar memória sendo usada pelo cache.
Como pfo mencionado, os mecanismos subjacentes são complexos e muito além do meu entendimento. Perguntei a Ted Ts'o quase uma pergunta idêntica em uma aula que ele estava dando na LISA, e dei-lhe essencialmente a mesma resposta que ele me deu, ou pelo menos como eu entendi.
Por acaso, eu suspeito que a memória "usada" na troca não seja realmente usada por qualquer coisa neste momento, mas que ela ainda não foi liberada ainda.