Almost in every other apllication that uses a coordinate system with a world origin, the basic principle of a child parent relationship is: the parent becomes the child world origin. In blender when you parent an object, the transform(position,rotation,scale) stays the same, even more against every basic logic, when you move the parent, the transform of the child object stays the same, I know there are workarounds, but for me and many others that come from other 3d packages this makes even the most simple rigs very backward and a pain to work with. So can anyone give an answer other then : "this is how blender works"
First of all, blender is awesome, but if this isn't fixed in the future then I fear blender will never become an industry standard beyond basic asset creation.
ob.matrix_world
changes when transforming parents. To parent an object (let's say the default cube at identity) to the lamp or camera if you choose the without inverse option when parenting, the cube will move to the transform of the parent. The world matrix calculation can involve constraints. Editing a constrained objects matrix world could produce unexpected results which among other things may explain the global option not being available in the transforms. $\endgroup$