O gerenciamento de memória do kernel não usa o conceito de "programa" para organizar a memória, mas as páginas. O kernel decide com base em um 'menos usado recentemente' (isso pode ter mudado, mas as últimas referências que encontrei podem ser ditas ), em que quando o kernel está sob pressão de memória (por swappiness, ele troca as páginas que raramente são acessadas para dar espaço a páginas acessadas com mais freqüência ou novas páginas (ou porque não, cache de disco).
Portanto, nenhuma de suas suposições está correta. O kernel não ordena programas para a troca, ele estatisticamente seleciona quais partes da memória se comprometerão a trocar. O método é LRU. O tamanho da memória anônima ou privada comprometida pelo programa não afeta a maneira como o kernel selecionará quais páginas serão confirmadas.
Você pode ver quantos KiloBytes (ou páginas) têm o kernel comprometido a trocar usando smem -s swap -t -k -n
.