I am coming from Inventor, and joints are really melting my brain. Maybe I am missing something, or I haven't played with joints long enough to get used to them yet, but I have a feeling that this will never fully make sense to me after coming from the Inventor world.
Here is a very simple problem that I cannot solve using joints (I am saying that I MYSELF cannot figure it out, not that there is no way): I want the face of a part to be tangent to a cylindrical surface. The way I've tried to solve this is by creating a construction plane that is tangent to the cylinder (easy enough, and familiar to an Inventor user). Then, I try to create a planar joint between the part face and the tangent construction plane. No dice! Very very very frustrating! What I am trying to do makes perfect sense, even within the wacky world of Fusion 360 joints, yet the software won't let me do it.
I think I've figured out why the joint that I want isn't allowed (but I still haven't figured out how to solve the original problem that I described): You have to select a two POINTS to form a joint, and there are no (selectable) points in a construction plane, so there is no way to form a joint between my tangent plane, and part face.
As you said, joints do not lend themselves very well to the task of taking two parts, and saying "this is how they are supposed to be positioned in relation to one another". I do not see how you can have a productive CAD system where this basic task is very awkward at best.
Why can't y'all just have both: joints AND "traditional" constraints?? Obviously, the underlying technology of joints relies on constraints (a joint is really just a combination of constraints), so it shouldn't be super crazy to add constraints (as a feature of the software).
I'm sure joints work great in some situations. I can definitely imagine they require less steps to get certain tasks done, but it has been a huge struggle for me to work with them, and it sounds like you are already aware that there are important tasks where they make work very cumbersome.
Rigid groups/joints do not address the positioning problem at all. Rigid joints are only useful if you have a good way to control the position of parts (and sub-assemblies) in the first place. Move and align are ok in limited situations, but they are not good for proper position control, because (as you say), move is a bit "free form". Align is kind of interesting, but it has the same problem: it does not actually establish any relationship between parts, which is fine in simple cases where a single align (move) is sufficient to move a part where you want it, but if you try to do anything even slightly fancy involving a second move, then whatever align operation you performed before could very easily get lost (since, again, align does not establish a persistent relationship between parts). A second move is not at all uncommon, since (for example) aligning a face with a construction plane is not necessarily sufficient to fully specify a part's position. Sure, I can measure the distance between my face and the tangent construction plane to make sure that my part face is still coplanar after another align, but even in the optimistic case where the tool reports a distance of 0.00, how do I know that the distance is exactly 0 and not just some small amount that cannot be resolved by the couple of displayed decimal places?
This type of uncertainty does not exist in a traditional constraint system. Yes, traditional constraint systems are tedious, because of the (slightly large) number of steps you need to perform to create all the constraints that you want, but you always know what you are getting, unlike move/align.
The main situation where I can see rigid joint/group being useful is if you design a part directly abutting parts that it is going to be rigid joint-ed to later (which you describe as top->down design). In that case, the part is designed in exactly the place where it is supposed to be, and does not need to be moved into place at all before being rigidly joint-ed, avoiding the whole loosey goosey-ness of move/align.
Maybe all I am looking for is to make planar joint sane by removing the requirement that two points be specified, and instead only require that two planes be specified. Really, mate and flush constraints are equivalent to planar joint (other than this weird two point requirement).