This is related to.
uc_taxes currently calls the "tax_adjustment" callback for each line item, but doesn't provide information as to which line item is being processed. This makes it difficult for modules which may provide more than one line item to determine which one should be adjusted.
Patch to follow adjusts this behavior so that each callback is invoked only once for all line items which it manages. The alternative would be to pass the whole line-item id to the implementor. That's probably cleaner, but represents an API change. This way, only uc_taxes has to be changed.