It depends, but in general I would say the more computation you can offload to the vertex shader the better. For example, if you're just transforming vertices, depending on your primitive topology, the geometry shader may end up doing more operations. But as always in optimisation, benchmarking is key...
It is fairly hard to do these accurately. Basically, you would need ray-tracing. However, there are techniques that can provide a good visual approximation. In particular, you should have a look at environment mapping (or cube mapping).
However they work completely opposite from each other. As C# constructs the derived class first and then the base, in C++ however the base gets constructed before the derived class.
This is almost true, but there's one important detail to be aware of. Although objects do indeed start out as the most derived type, with the method table being for the most derived type, the constructors are still run in order from the base class to the most derived class. This is the most sensible order, since a constructor in a base class must be run before the constructor of any derived class in order for the object to be in a consistent state. Therefore, in C# one has to be extra careful when making virtual method calls in a constructor. If the type is not the most derived type in its inheritance hierarchy, the method will be called on a class whose constructor has not yet been run. (See Stack Overflow)
No, but it helps ... seriously, I would love to love Gimp and InkScape and I check up on them every few years to see if I can reasonably make the switch from Adobe products but it still seems like it would be hard.
In general, I agree with your point. However, you should also consider that switching from a complex piece of software to another is always frustrating. Of course, this is exacerbated if the new tool is missing some particular feature that you like. Yet, I find that the transition is the most difficult part.
I did the switch from Photoshop to Gimp a long time ago. It took quite some time for me to adjust. Now that I am used to it, Gimp allows me to do anything I need. Most of my image processing needs are fairly basic. But, if you are not a professional graphics artist and you are not already using Photoshop, you will probably be quite content with Gimp.
Let me just add that if you cannot think of a good reason to add scripting to your game, chances are you don't need it (yet). Don't add features just because you see them somewhere else. If you keep adding features that don't directly benefit your game, you will lose track and likely never finish.