Created attachment 560056 [details]
Currently provided rules in 70-dfu-programmer.rules are invoked only when ACTION=="add". When driver is bound to the device new event "bind" is sent and udev rules are run again without preserving previous state (and "bind" event is not handled by ACTION=="add"). As a result symlink /dev/dfu-%n is deleted as soon as driver is bound to the device (it exists for very short time).
I have encountered this problem on system which is using OpenRC. Similar issue (unrelated to this package) has been reported to systemd: https://github.com/systemd/systemd/issues/8221
I haven't look through patches there, however, it is possible that udev's device data preservation for "bind" and "unbind" events have been handled there on systemd's level instead of udev rules level. Thus I suspect that this issue may not be present on systemd installations.
Possible solution is to replace `ACTION=="add"` with `ACTION!="remove"` in the ebuild. This way symlink will be kept until device is removed. I've applied this change locally and it is working as expected on my system.