There are some pedants who claim that the phrase "Free Gift" is bad English. Their line of argument is that gifts are by definition free, and hence the modifier "free" is redundant. Unfortunately, their insistence on such strict interpretations and usage of terms results them arriving at precisely the wrong conclusion.
Consider the following phrase, "$2 gift". Pedants would claim a contradiction, but it is clear to the astute mind that it is in fact valid. The word "free" does not modify the cost of the gift to the recipient, but rather the cost of the gift to the giver. In the proper context, it means that the gift is valued at $2, or costs $2 for the giver to buy.
There are two implications of the previous conclusion. The first possibility is that the "free gift" presented by the store or merchant costs nothing for the merchant to give. While this is true in some circumstances, for example crap freebies like pens, in general free gifts do cost a small yet substantial amount. This brings us to the second possibility, that the "free gift" is free (for you), but it is meant to be used as a gift. What this means is that free gifts are not supposed to be kept and used by yourself, but rather to be given away to plague people you disfavor.