Some recent examples of where I used the Vector object:

Planetary Gravity.

Explosion.

Bullet Hole.

Local to Global.

This is the best example (in my opinion):

Tornado.

And there are others too, but I can’t remember them all ( I don’t exactly keep track of all my examples…I should probably start, though ).

In either case, as Wraaah already mentioned, it’s all about making the math easier. There is really nothing special about the Vector, or the Matrix objects as supplied in the Mathutils module; I mean, I could just use lists, and then write functions that would allow me to treat them like vectors, but having an object with all the methods already there is just more convenient.

So, don’t think about the Mathutils module, and the objects it provides, as “magic” -> the math behind the constructs is the important thing, and that’s what you should learn.

The Mathutils module is just a very convenient tool.

As for the orientation matrix, I actually wrote a tutorial some time ago (step by step, with .blend examples) that tries to explain some basic concepts about it:

http://socialstorage.googlepages.com/orientationmatrix-basics

Although, the tutorial posted by ypoissant is probably more detailed in the mathematical sense, so you should definitely look over that too.

Math is really the key: You can know all of python and the BGE api by heart, but if you don’t know the math, you’re just tapping into 1% of what’s possible.