Blender parent problem
This is from wiki:


  At the very moment of establishing a hierarchical relationship between
  objects (parenting), the transformation coordinates of the child
  object remain unchanged, and yet this object doesn't change its global
  transforms visually (location, orientation or scale), though its
  reference "world" has changed from global origin (zero transforms) to
  the global transforms of the parent.
  
  Origin of unparented objects is the global origin: global (0,0,0)
  location, zero rotation, and unity scale. After being parented, the
  new origin should be that of the parent. And it is. But a correction
  matrix is applied to the child, so that the new reference point is not
  the global transforms of the parent, but the global origin. This
  correction matrix is applied to the global transforms of the parent
  before applying them to the child.


This correction matrix called Parent Inverse

You can do this operations with Parent Inverse:

Alt + O (clear origin) - this operation clears Parent Inverse and makes object go to the parent location. 

Ctrl + Shift + P (Make parent without Inverse) - it's like what you do in properties -> object -> Relations: Parent. Or like Ctrl + P and Alt + O and Alt + P Clear Parent Inverse in one comand

Alt + P Clear Parent Inverse - Like Alt + O but for rotation and Scale.

Why Blender using Parent Inverse?

Let's try 2 objects  with Parent Inverse:



and without:



As you see, transform matrix, applied on parent object without inverse, makes child object distorted. If you want this effect - you are welcome, but mostly, we don't want it