Apply a product discount if orders are picked up
Aren't the shipping methods themselves using rules? I would try to edit the rule for the Pickup shipping method and see if I could add the discount from the Actions of that Rule.

If you know how to use Rules Components, you could further encapsulate this so all the discount-related stuff was in a separate Rule Component.