Do you have some thoughts about what are good alternatives? I agree that reproducing #[cfg]s in a lot of places can be annoying, but it seems like a relatively safe way to have conditional support for some functionality. (I can't think of a scenario where accidentally mistyping a #[cfg] won't hit a compilation error, but I guess there might be some.)
I'd probably define all variants unconditionally. On unsupported OS, they just wouldn't be used.
This might force people to add more _ => arms to their matches, but on the other hand it helps avoid gratuitous non-portability (package that doesn't use the Unix-only feature at all still fails to compile on Windows because of nonexhaustive match).