Mýlíte se. GetVersion funguje správně na Win16 i Win32. Problémem bylo, že řada aplikací ten výsledný packed dword rozebírala, a to různými obskurními způsoby. Funkce GetVersionEx byla uvedena právě proto, aby se těmto častým problémům předešlo.
Win16 a Win32 jsou odlišné platformy, a i kdyby se nějaká funkce API chovala odlišně, a byla správně dokumentovaná, bylo by vše v pořádku.
Dvě různá API pro zjištění té samé věci jsou vcelku běžná věc. Buď původní API narazilo na nějaké limity, nebo bylo z nějakého důvodu nepraktické. A protože je třeba zachovat zpětnou kompatibilitu, původní API musí zůstat.