nl_addr() and nl_route() perform netlink operations but don't do much to check for errors. We check for an error on the actual send() and recv() calls, but not for error codes in the reply message. The fact we don't trap and report errors here made bug 59 significantly harder to debug than it might otherwise have been (we silently ignored an -ENODEV error cause by that bug).
I'm working on this in an upcoming series.
Now fixed upstream.