Windows internals makes it clear than winlogon.exe after authenticating with lsass.exe launches the contents of the UserInit key, which by default is c:\windows\system32\userinit.exe to set up the environment and then launches whatever is specified in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell which by default is explorer.exe but why is there a wow64 version of userinit? ( ie c:\windows\syswow64\userinit.exe) Specifically the question is revolving around the fact that the native binaries for staturp, lsass,winlogon and the like are already 64 bit and will use a 64 bit version, so what is the need for a 32 bit version of userinit?
For the same reason there's a SysWOW64 version of almost every other Microsoft binary: compatibility with 32bit applications. Maybe no one will ever use it, but as soon as Microsoft stops distributing the 32bit version of the binary, be it calc.exe or ping.exe or Bubbles.scr, someone, somewhere, using some crappy old 32bit app, will complain.
That would be the 32-bit version. Believe it or not, SysWOW64 is where the 32-bit binaries are. WOW64 stands for Windows-on-windows64, i.e. the 32-bit stuff that can on top of the real 64-bit system.
C:\windows\system32 is where the 64-bit binaries are, just because that's the age-old path that was always included in everyone's path. I figured this out by trying to force powershell to launch from SysWOW64 instead of System32 and then discovered my 64-bit stuff wouldn't work...
So, in summary:
System32 = 64-bit versions
SysWOW64 = 32-bit versions