Actually, i agree. Whenever i've bought anything in a sale, whether it be tech or clothing, if it's faulty it's always a straight swap even if it's gone back up in price. Obviously if i wanted a refund i'd get the sale price that i'd paid for it.
I believe that there is a difference here between what the law requires and what a customer could reasonably expect. A customer could reasonably expect the goods to be exchanged in my view, and that is my experience with goods from a range of suppliers. So Have giffgaff complied with the law - yes. Have they provided a good level of customer service - no.