A entity's origin, position, rotation and scale are combined into its transform (sf::Transform). So the transform and the set of individual transformations are equivalent.
Now back to your example. The parent has a modified origin of (-50, -50). The child has the default origin of (0, 0). But since you draw the child with the parent's transform, it inherits the origin of (-50, -50). So both child and parent end up being draw with the same origin. And since all their other attributes are the same (position, rotation, scale), they are exactly one on top of the other.
If you prefer another point of view, here it is. The parent's transform represents its origin (since all its other attributes are left to their default value). At draw time, it is not combined with another transform, so the parent's transform is all that is used for drawing the shape. The child transform is the identity, since all its attributes are left to their default value. But at draw time, it is combined with the parent's transform. So, again, the parent's transform is all that is used to draw the child shape. They are drawn with the exact same combined transform.
SpriteKit behaves differently because it is a little higher level: it implements explicit parent-child relationships, which causes implicit transformations to happen under the hood. SFML doesn't implement such a relationship between entities, all that happens with the transforms is what you explicitly do; nothing more nothing less.
It's you who calls these entites "parent" and "child", but they are just two separate entities drawn with the same transform.