There are a lot of different versions of Win32 and WPF based on the Windows and .NET version they’re targeted to, respectively.
Cocoa is more like targeting an evergreen browser. Just target the version that is just old enough to support enough users and you’re good (and users are happy). Unlike evergreen browsers, though, you do hit hard cutoffs once every few years, but I suspect navigating those means updating the compilation/signing process more than rewriting anything (correct me if I’m wrong).
Win32 and WPF are both more than "decade-old," so really you're down to two. I'm not sure that 3 toolkits in 24 years is "every other year."