Right now uc_discount_price_handler_alter doesn't look too good. It does too many things for a simple function (caching, price altering, pulling triggers).

I propose fixing this issue.