I’m afraid there is no right nor good way to do it. The first solution you mention with xxx_1=yyy is completely wrong. It’s something the ID editor does but I believe the ID programmers are the only folks promoting such tag. The second solution is a bit better but the semicolon solution is not really defined and could have different interpretations depending on context. So in general, except for clearly defined cases, that solution should be avoided, too.
For the fuel and car wash I would probably add two separate nodes. Although being on the same site they are fairly different facilities. You could also use one node with amenity=fuel and car_wash=yes although such tag would probably not be understood by many data consumers. It is used over 400 times already, though.
For the cheese and meat shop example there is no good solution. You probably need to go with a more general tag like shop=convenience or invent your own value like shop=cheese_and_meat.