It's not niche at all; it's extremely common to need this. Maybe I'm not explaining it well. For example, an idiomatic pattern in Go is to return two values, one of which is an error:
func f() (SomeType, error) {
// ...
}
In Rust you would return one value:
fn f() -> anyhow::Result<SomeType> {
// ...
}
In Go (and similar languages like C) nothing enforces that you actually set exactly one value, and nothing enforces that you actually handle the values that are returned.
It's even worse if you need to add a variant, because then it's easy to make a mistake and not update some site that consumes it.