Compiler optimizations with generics - C#