If you need to manually get to an assembly in the GAC, the easiest way I know of is to Start > Run > "C:\windows\assembly\gac_msil"
. There's a folder for each assembly in the GAC, so you can browse through there and find the exact path to the DLL you want, which will usually look something like:
C:\windows\assembly\GAC_MSIL\System.Net\3.5.0.0__b03f5f7f11d50a3a\System.Net.dll
Which is just name\version__publickey\filename.dll
There's probably a more "correct" way, so if someone knows what that is, please correct me!
As to the second question, I can only hypothesize. It does make sense that the GAC is for class libraries, not executables, but that's mostly philosophical. I don't know any technical arguments one way or the other.
Edit: that lovely first comment below the answer turned out to be a misunderstanding, and is resolved :)