Não sou especialista, mas acredito que seja algo assim:
Se suas regras pf são estáticas, então não vejo uma ótima maneira de usar persistir, mas se elas são dinâmicas (o que significa que você usa âncoras em suas regras), as regras entram e saem da existência. Persistir é o que mantém as tabelas ativas quando o conjunto de regras é alterado e não há mais nenhuma regra que as referencie.
Eu penso em âncoras como uma espécie de instrução "import" para o seu conjunto de regras pf e, portanto, dependendo do que você puxar com essa âncora, as tabelas que você definiu podem ou não ser referenciadas.
Como um exemplo de como usar âncoras na hora, considere:
$ echo "my super cool pf rule that uses table 'foo' that I want inserted" | pfctl -a nameOfAnchor -f -
Isso lerá a nova regra diretamente de stdin e soltará "minha regra super legal pf que eu quero inserir" em seu conjunto de regras como um substituto para a âncora 'nameOfAnchor'. Agora, talvez a tabela 'foo' definida anteriormente no seu conjunto de regras não seja referenciada por nada até que você adicione essa regra dinamicamente com o pfctl. Se 'foo' usou a palavra-chave persist, então você está pronto para ir. Caso contrário, 'foo' não teria existido quando você inseriu essa nova regra na hora e todo o inferno se solta. :)
BTW, a 2ª Ed. de Absolute OpenBSD por Michael Lucas tem uma boa seção sobre isso perto do final. Você terá mais detalhes sobre como usar âncoras de lá.
E, para uma referência ainda mais focada no firewall PF do OpenBSD e em seus recursos, você pode consultar a terceira edição do livro de Peter M. Hansteen, "The Book of PF". Ele também tem material on-line sobre PF.