It’s not funky. So, when you create a parent child relationship using the Ctrl+p Blender creates an inverse matrix. When you assign parent in relationship panel blender doesn’t(well it does, but it’s zeroed out). You can also clear out the inverse table thru Alt+P on the child object. I think when you apply a transform like scale it bypasses the parent child relationship and only applies the transform to the data.
What does the inverse table/matrix do? First let’s create one. Open blender move the default cube 2 meter up on the z axis. Add a monkey head and move it 3 meters on the Y axis. Select monkey, then shift+select cube, and press Ctrl+p->keep offset. Press n to open n-panel. Then click item tab. Select the monkey. You will see x and z location are still at 0 and y is at 3.
Second, let’s see how it affects a child. Select both the cube and the monkey and press Alt+g to clear the location of both meshes. Now you might expect the monkey and the cube to both be at the world origin, but the monkey is 2 meters below even though it’s location shows all 0.
Third, why? That is because the cube wasn’t at the world origin when the parent was created. Thus an inverse matrix with a location of x and y 0 and a z of -2. So, if you select the monkey and press alt+p->clear inverse the monkey will pop to the world origin.