Memory Zones

Linux divides physical memory into zones (DMA, Normal, HighMem on 32-bit). Why not treat all physical memory uniformly?