E' tutta una questione di entropia: per rappresentare un'informazione nella sua interezza è necessaria una certa quantità di spazio. Gli algoritmi di compressione permettono di ridurre gli sprechi e di compattare le informazioni ridondanti, ma comunque c'è sempre un limite teorico sotto il quale non si può scendere (lower bound).
Poi ci sono le compressioni lossy, cioè con perdita di informazione (jpeg, mp3, ecc...), che sfruttano certi principi di psicoacustica (in campo audio) o di percezione dell'immagine per eliminare i dati in punti in cui il nostro cervello non si accorge della differenza.
Col passare del tempo vengono progettati nuovi algoritmi in grado di comprimere sempre di più i dati, specialmente in ambito video (la cui ultima evoluzione è rappresentata dall'HEVC o H.265), ma è impensabile comprimere un gioco di 40 GB in 40 MB. La roba pesa tanto perché l'informazione è effettivamente presente, e ridurre la dimensione comporterebbe una perdità di qualità (riduzione della risoluzione delle texture, dei vertici dei modelli 3D, ecc...). Gli stessi principi della fisica si applicano all'informazione, se hai 1 litro di benzina non lo puoi comprimere ad 1 ml sperando di mantenere invariata l'energia.
Inoltre, se i giochi diventano sempre più pesanti non è per strani complotti delle software house o dei produttori di PC, ma è perché al giorno d'oggi si è arrivati a livelli grafici impressionanti, e l'hardware non riesce a stare dietro ai progressi ed agli standard richiesti dal mercato (purtroppo siamo quasi arrivati al limite fisico del silicio, e in assenza di una nuova tecnologia, non saremo in grado di aumentare significativamente le prestazioni).
Sono coinvolti dei calcoli così pesanti che non potete neanche immaginare, e spesso i programmatori devono fare i salti mortali per spremere la macchina fino all'ultimo MFLOPS (c'è chi ci riesce, chi no, in ogni caso è un lavoro molto difficile).