I agree. I find this approach works very well. The component's own styles are just related to how it looks: color, images, fonts, etc. The parent's styles tell a child where to go in the layout. In general I find if I maintain this division, my css remains sane and I can reuse a component in just about any scenario.
In your example, if .child had flex defined internally, then that becomes a bad time in my experience.
In your example, if .child had flex defined internally, then that becomes a bad time in my experience.