Depois de Andres apontar que eu preciso de algumas outras regras para o pacote local, pesquisei um pouco e encontrei a solução.
Pacote gerado localmente ignora a cadeia PREROUTING da tabela nat enquanto lê a cadeia OUTPUT. Com as próximas regras, resolvi meu problema:
iptables -t nat -A OUTPUT -p tcp --dport domain -j DNAT --to-destination 127.0.0.1:5300
iptables -t nat -A OUTPUT -p udp --dport domain -j DNAT --to-destination 127.0.0.1:5300
Com essas regras, nem preciso alterar meu /etc/resolv.conf.