Imagine if they made programmers put 64 bit DLLs in a "System32" directory and 32 bit DLLs in a "SysWoW64" directory. That would really keep 'em on their toes!
You should look into the behavior of the /windows/sysnative link. It appears and disappears depending on whether your process is running as 32 bit or 64 bit.
Programmers should never put DLLs in those folders... Or even ever touch them.
Except for \Windows\System32\drivers\etc\hosts, of course.
I occasionally try to search for the reasoning behind the location of the hosts file in Windows, and I always come up blank.
Maybe it's from back before Windows had a built-in TCP/IP stack? If it were a third-party/optional driver, having files related to it in a path under system32\drivers would make sense.
Back around Win 95 when they added networking it was based off of (IIRC) BSD's TCP stack and related tools. They were an optional 'third party' driver of sorts, but shipped by the first party. I'm not positive about WinNT or Win3.11 (for workgroups?)
I remember adding "trumpet winsock" to Win 3.x back in the day. Says '94 for that, and summer of '93 for NT 3.1 debut: