My first take on a solution is to have the order total split out the shipping costs separately in the checkout.

The order would look like this:
Customer Order:
item 1 cost $2.00
- shipping - $0 pickup

item 2 cost $3.00
- shipping - $10 flat rate

item 3 cost $10.00
- shipping - $0 pickup

Order Total - Shipping Expense Summary:
pickup - 2 items = $0
flat rate - 1 item = $10

Order Sub Total:
All the pricing comes together here and the customer proceeds through to payment.

I'm uncertain of any code that exists to do this to date.