netlink: NLM_F_REPLACE not working on address???

Am I missing something, or does RFC 3549 suggest that the NLM_F_REPLACE flag should apply to any netlink message header? In other words, routes/links/ipv6-lifetimes should not be the only things that can be affected by the flag.

The reason I ask is that it seems impossible (from looking at the latest iproute2 code) to enact a "change" of IP address once an interface has been defined with at least some initial IP address. I even tried creating an interface without the NLM_F_EXCL flag to see if there was an exclusivity in place preventing interface changes.

Instead, what I seem to have determined is that the IP address included in the netlink message is actually used to hash with, and as such any difference in IP address will be applied as a NLM_F_CREATE. This would appear to imply that, for all intents and purposes, there is no direct method for enacting a change-of-address to an interface... at least not with my Kernel (2.6.18-128.el5)

(NOTE: remove + add does not count as a "direct" method of changing the address, because there is - in that specific case - a potential for accidentally removing secondary addresses from the interface if they exist)

Anybody else (maybe different kernels) have a differing experience?