Perchè in un sistema operativo X, per poter vedere a video la scritta "Hello, world!" usi delle chiamate di sistema fornite da X che, ovviamente, sono differenti dalle chiamate di sistema offerte da un sistema operativo Y. Quindi, mentre il sorgente può anche non variare (ANSI C, C++), sicuramente ciò che varia è il codice compilato, perchè sfrutta routine diverse (anche se sulla stessa macchina!).
Ciao.