O Windows usa alguns dos endereços de hardware destinados a endereçar memória, para outro hardware (como USB, SATA, Controladores de Disco, etc.). Então, alguns desses endereços de hardware não podem ser usados para a sua memória. Daí o limite.
Até onde sei, o Unix / Linux CAN pode endereçar um pouco mais do que o limite de 3,2 GB do Windows. Isso ocorre porque o Linux usa um esquema de endereçamento diferente.
Há também uma função chamada PAE (Physical Address Extension), que faz com que os sistemas operacionais de 32 bits usem mais de 4 GB.