Picking element directly saves path for that element in Visual Three Asset's hierarchy, and names of elements in that path. When searching for the element it prioritises names over indexes, but if it finds 0 or multiple elements of given name at current tree level, it will use remembered index instead, so not having unique names isn't much of an issue. Although if some script will rearrange elements in that tree BEFORE UI Events Selector register callbacks (due to custom execution order, or instantiating game object at runtime) it will skip registering for elements that couldn't be found.
Making changes to Visual Tree Asset, or changing reference in UI Document to a different one, will mark invalid entries in UI Events Selector.
Callbacks are invoked as long as UI Events Selector is enabled, thus you can stop all callbacks from firing by disabling it.
To make assigning UI style callback to UI Event easier and type safe you can use copy/paste. This unfortunatelly works only on UnityEvents in UIEventsSelector and you won't be able to paste it to other component.
If your Visual Tree Asset changes at runtime and some elements dont have their callbacks registered, you can call ReapplyCallbacks method of UIEventsSelector, this will register callbacks to elements matching the query if they didn't got their callbacks registered yet. This might be usefull if for example you want all your elements with given class have a specific functionality, but some of them are added to that class list at runtime.
GetComponent<UIEventsSelector>().ReapplyCallbacks();
Unfortunatelly there is no reversal functionality yet, so callback once registered can't be unregistered by UIEventsSelector at runtime.