You guys are making all of this WAY too difficult.
The problem we have to deal with is the possibilities of two
transport-level sessions that share the same shim6 association using
different ULIDs.
One way to deal with this is to forbid it. So implementations would
have to choose source and destination ULIDs and stick with those for
any particular shim6 association. However, this is bad for load
balancing and it's possible that two sessions to different ULIDs turn
out to terminate on the same host unexpectedly, in which case a full
shim6 association wouldn't be able to form.