When a PPPoE session is connected, pppd will update /etc/resolv.conf regardless of system name-server option unless no-peer-dns is set. This is because pppd vendors scripts /etc/ppp/ip-up.d/0000usepeerdns and /etc/ppp/ip-down.d/0000usepeerdns, which updates /etc/resolv.conf on PPPoE connection and reverts the change on disconnection.
There is a typo in /etc/dhcp/dhclient-enter-hooks.d/04-vyos-resolvconf, which misspells variable name new_dhcp6_name_serversasnew_dhcpv6_name_servers. This causes IPv6 name server entries in vyos-hostsd` not updated when dhclient receives nameservers from DHCPv6.
Regular expressions in scripts under /etc/dhcp/dhclient-enter-hooks.d and /etc/dhcp/dhclient-exit-hooks.d/ are not enclosed in ^$, so those IPv4 related branches (like BOUND) could be mistakenly executed when an IPv6 reason (like BOUND6) is given.