It has been like that for me forever, an extra dynamic address entry is created with the exact same address as the one without the “D” (dynamic) flag that was manually added. But what interesting is that I have 5 manually added entries for 5 interfaces, 4 vlans and 1 WG interfaces, and only one of them gets the extra dynamic entry. This happens to be the first manually added entries (in historical order, not sorted by address) in the /ipv6/address table. The 4 other ones, although configured exactly the same, don’t have this behavior.
The extra entry is harmless though, and you can delete it if it bothers you. But it will reappear when your pool gets a new prefix.