As far as I know, the runtime has been virtually unchanged since version 2.
Learning linear algebra and taking a class in it are different. I
was going to minor in mathematics until I realized that linear algebra II and abstract algebra would be

for me, and none of the other math classes are easier
I thought you just said using a native wrapper would be faster? Or are you talking about the performance hits that result even from that?
I'm experimenting with writing a game engine right now, using C#. I'm using a simple task kernel (like that Enginuity article), hierarchical game states, and scripting through assembly loading (with fast calls from dynamically generated delegates using Reflection.Emit, actually similar to what C# 4.0 does for dynamic dispatch).
I'm nearing the point where I need to think about some kind of renderer. Writing my own is outside my experience level and outside my desired area of learning. Mogre, the Ogre3D wrapper, made me want to shoot myself. Irrlicht is a C++ renderer that looks nice. I figured I would use C++/CLI. Write an interface in C# for a renderer plugin and implement it in C++/CLI. I don't care that much about performance but I'm still going to design it to be as fast as I reasonably can. Do you have any advice on this?
Bassoon, n. A brazen instrument into which a fool blows out his brains.