OK, I must have read that incorrectly.
For #3 to work, the only solution I can think of is to have P and C siblings. Say you have another object called mainObj. You can then add P and C to mainObj. As I have said, whatever you do with the parent gets applied to its child. If you want P invisible and C visible, you’d have to make them siblings and not parent-child.