Hello RM,
Each task you enter is a single, separate task. When you enter two tasks in two separate areas of the outline, as subtasks of two separate projects, they are separate tasks and you can't link them so that completing one automatically completes the other. Therefore, in your example, you'll need to find some way of entering "learn song XYZ" in one place and making it relevant to both projects (play song for mum's birthday and learn the piano) or both contexts (relationships and piano playing skill).
You could use a single task and tag it with the Contexts of "relationships" and "piano-skill".
It seems to me, though, that playing the piano for the birthday is dependent on learning the piano to a high enough level and learning the song. I'd set up a project (a branch in your outline) for learning the piano to that level and then a separate project for continued learning beyond that goal:
Project A - learn song XYZ
Step 3 - learn song XYZ
Project B - play song XYZ at birthday (you could consider using dependencies and making the start of this project dependent on project A step 3 - More important to get the start and due dates right for each step, though)
Step 1 - Arrange birthday party
Project C - continued piano to then next level
Step 1 - more scales and arpeggios
Step 3 - Play Bach at the Royal Albert Hall
Those are my thoughts. Hope that helps.
Happy Christmas.
Stéphane