Should they? When I'm writing C, I'd rather write C, not some OS-specific variant. Granted, that goal's not quite achievable today, but I'd rather things get better than worse. I'd like to see the OS-specific features, like weird, non-standard syscalls, be kept in a separate library and headers so I can use them if I need them, but I'll always be aware that they are OS-specific and not portable.
Of course, in my ideal world, we all have a choice of OSes, and can pick the one that suits us best, and have the apps we need with little more than a simple recompile.