A rotation matrix actually only holds 2 vectors you need to know when we assume the model is not scaled: direction and up-vector. Up-vector is propably the "orientation" you mean. A character might look in the right direction but renderer might think hes upside down. You can get the left-vector with crossproduct of direction and up vectors.

However, OpenGL assumes that matrices are 4x4 so for rendering objects you would have to rebuild the matrices per frame if the data is separated. This can slow things down a little, so some engines propably save the full 4x4 with position included for objects. It's exactly the position-vector in the matrix that i'm most confused about always. I'm at the moment unsure wether glMultMatrix causes the object to move to that coordinate before or after the rotation (guessing after).