That's correct. No hashes; just string equality on the tag name. Everything gets collapsed to an integer. I'll have to read about why OCaml hashes things. Maybe separate compilation?
Edit: oh, it's unique per compilation and isn't meant to be shared around. The variants are shared with string names in flat scraps (small serialized ASTs)