Why does my full node need to load IP addresses from DNS seeds on restart? I stop one of my Bitcoin Core full nodes (v0.19.1) with 10 connections and then start it again. It needs to load IP addresses from DNS seeds. Why is this? Why doesn't it try the addresses of peers it was connected to prior to the shut down? Are they not persisted in addrman? It could then obtain more IP addresses through gossiping from those peers and not need to keep going back to the DNS seeds.
This appears to be resolved for me in v0.21 with this merged PR 16939 and some additional context in this issue and this Bitcoin Core PR review club.
Falling back to load IP addresses from DNS seeds should be the last resort and as you say addresses of previous peers should be persisted in addrman after stopping bitcoind and restarting.