It's not perfect, but I've got something that works for me.
I'm adding one rule per free pen. Each rule has an exclusion clause on it that says
If an item is NOT FOUND in the cart with ANY of these conditions true:
SKU is one of: pen1, pen2, pen3
It takes some playing with, and it's too complicated to run with any really complicated promotion, but it works for short, simple promotions. After much research I honestly think it's the best way of doing this in Magento.