The most interesting takeaway from this article is that, according to people who actually do the work, NetworkManager and systemd-resolved do get things right.
https://github.com/systemd/systemd/issues/6490 (fixed in v248)
https://github.com/systemd/systemd/issues/8451