It's not really a gapping comma. It's a comma separating two coordinate adjectives, which is a standard construction. I can't actually find an authoritative reference for the rules here, but see e.g. a question on the difference between coordinate and cumulative adjectives.
A couple of alternatives you mentioned:
"… because it lacks the social stigma and pungent, and giveaway odour of alcohol and cannabis"
This one is at best confusing and at worst wrong. I bet a reader would attempt to parse this nonsensically: "because it lacks the social stigma and pungent. Additionally, giveaway…", mistaking the comma for a clause separator. At best, this is a garden-path sentence.
"… because it lacks the social stigma and pungent and giveaway odour of alcohol and cannabis"
This is less wrong, but I find it aesthetically displeasing. The two instances of the word "and" serve different purposes: one separates the elements of a list of modifying adjectives ("pungent", "giveaway"), and one separates the elements of a list of modified noun phrases ("stigma", "odour of alcohol"). One of the reasons we have punctuation is to give us other options when using mere words would cause us to repeat ourselves.