>>35
Most people use some sort of IDE that looks up the function prototype and highlights the current function/argument, so getting the order wrong is rarely an issue. Sometimes I write ANSI C in simple editors and do get argument order wrong, even in functions with small argcounts (3+, for example, I don't remember how many times I looked up fseek/fread's definition).
As for redesigning the function APIs, I think it would be rather tricky to do given Win32 APIs features and complexity.
Try redesigning these fairly common APIs while keeping all the functionality:
http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
(CreateFile)
http://msdn.microsoft.com/en-us/library/aa366890(VS.85).aspx (VirtualAllocEx)
http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx
(CreateProcess)
Most of the time, operations have to be atomic. Spreading it through multiple function calls would require defering the actual action, and you'd end up specifying a lot of those arguments anyway. Wether this is a solution or a problem is unknown to me.