The most common use case would be interop with C libraries that use untagged unions. This is a significant hassle when writing C bindings in Rust today.
I can think of many, mostly revolving around cases where the tag is not stored inline with the structure in question. Where space efficiency is important this is quite common. C interoperability is obviously another important use case (the current solution of passing around [u8] arrays is pretty atrocious).