What's the point of the 'd' tag actually if it's just pulling the latest event?
yes, any event in the k >= 30000 < 40000 is a replaceable event and should have a "d" tag as an identifier (preferably random)
https://github.com/nostr-protocol/nips/blob/master/01.md#kinds
Discussion
Events in the k>=10000<20000 are replaceable by kind. So each pubkey only has one of them. A good example is the k:10002 events
Events in the k>=30000<40000 are replacable by "d" tag. So when a new event is published it replaces the old one with the same "d" tag. A good example would be the NIP-23 article events