La programmation système est différente, en effet les APIs des OS sont différente, et certaine pragma sont spécifique à Windows, ou aux autres OS.
Les compilateurs peuvent être disponible pour une plateforme, et pas une autre. En sachant que les compilateurs peuvent éxécuter les instructions d'une ligne comme ils le veulent. Et certain compilateur ne supporte pas certain flag, interdise certaine chose ou ne sont pas à jour avec le langage tout simplement.
Les APIs des OS peuvent être totalement différente, bien que les OS les plus utilisé sont standardisé par la norme POSIX, l'API de Windows peut être implémenté différement que celle de Linux, ce qui fait que certain programme fait sur Linux et compilé sur Linux, même compilé sur Windows ils peuvent être plus lent, ca dépend vraiment des mécanismes utilisé par le programme.
Au final c'est très aléatoire et très propre à l'OS utilisé les différences entre Mac, Windows, Linux et j'en passe.
Je me suis pas encore lancé completement dans la programmation système, mais sur un OS, il est tout à fait possible que la programmation système en général soit plus confortable que sur tel ou tel autre OS.