>>370-372
少なくとも手元にある.NET2.0では
static void Main(string[] args) {
CompilerParameters cp = new CompilerParameters();
cp.GenerateInMemory = true;
cp.GenerateExecutable = false;
cp.ReferencedAssemblies.Add("System.dll");
CompilerResults cr = CodeDomProvider.CreateProvider("csharp").CompileAssemblyFromSource(cp, @"public class A { public static int F() { System.Console.WriteLine(""1234567890""); return 12345; } }");

Assembly a = cr.CompiledAssembly;
Type t = a.GetType("A");
MethodInfo m = t.GetMethod("F");
Console.WriteLine("return: {0}", m.Invoke(null, null));
Console.ReadLine();
}
が普通に動作したが…

>>385
ロードしたアセンブリそのものはGCの対象外。
>>354がやりたいことが、大して大きなアセンブリ動的生成でないならば、
あとかたつけはあまり考えなくとも良いけど、
サーバのような長命アプリでユーザからの入力に応じて最適化されたアセンブリを生成するとかいうなら、
アプリケーションドメイン分けしてアンロードするしかないかと。
どのコストがどの程度かは実際やってみないとなんとも。

>>384へのレスが的外れ気味なのを見ると、
すまんがちょっと全体的に知識不足な感が否めない気がする。