"Have" can always replace "eat" or "drink" in English. You have dinner, have a glass of wine, have a sandwich.
With "soup" in particular I would never use either of those verbs, as it's a liquid that is treated as food, so neither "drink" nor "eat" properly fits. As a native speaker, I'd say "have soup" 99% of the time.
And there's no confusion between this and possession. These are two different things:
- Have you any soup?
- Do you have soup often?
Does that really mean the same? I'm not a native English speaker, but I always thought that "to have dinner/soup/food/etc." had a more general meaning (i.e. the dinner is happening now, but I don't necessarily have to eat right now) whereas "to eat ..." puts specific emphasis on the eating itself.