In theory USB_DFU_ATTRIBUTES_WILL_DETACH is nice, in practice not so much, because usb uses control transfers and "waiting" for status response completion after finishing flashing is cumbersome. There is basically no advantage if the device resets itself, and just waiting for the host to do it like most DFU devices work (and what the BL used to do in the beginning) works around the status issue.