oh, wow. lots of text. Some of it helped, I'll clarify some of my points since I may have been somewhat vague in my presentation.
First I'd like to say that I am one mind among millions of other uses and do not claim to have any "correct" or "best" answers. I have used CAD many years, zero years in developing CAD software, I do know that it is very hard to develop software and I imagine that there are 1000+ hours of thinking/testing behind most features, so all I do is try to explain my perceptions and viewpoint on how I would understand something better. I might be "old in my ways" but I hope to grow with the capabilities of the tools available.
As I understand your first point is that components should not change place when changing level in a hierarchy as a feature but more an unfortunate effect of the nature of how Fusion works and you are working to fix the issue without the user "forgetting".
When writing this response it occurred to me that Fusion is more "timeline"-centric than browser-centric like me. I've studied Interaction design for three years and worked with it on and off for a couple of years now, as an ID/UX-person I can say that there is a discrepancy between what Fusion wants (how it works) and what is shows as useful/important. The Browser is much more prevalent (more screen space) and displays more relevant information about the entire structure than the timeline does, it also has more functions/tools available to affect the work and how to display the work. But the timeline is king considering what is possible and not.
If I can create a component in a sub-assembly (as seen in the browser) and not have an automatic logical connection to the closest parent than the browser in Fusion does NOT represent a hierarchy that is true until a joint is placed by the user. I'd recommend automatically applying a "as built" joint between the origin of the component created/imported to the closest parent layer origin in the hierarchy (at least as a quick-fix) or, at a minimum, assign an icon/color to the component in the browser warning/indicating that it has no reference other than to assembly origin (if it does not lay in "root").
An idea could be to implement a toggle-activated branching timeline, every component has its own timeline and if operations are dependent of other components it shows them side by side and where the dependencies link.
At first I did not understand why there needed to be a "context" folder in a component since an assembly is made up from components that are "their own entity" that is separated from the assembly, BUT since one can use geometry from other components to create new geometry in a component there has to be a link to where the reference comes from, I get that now.
I do wonder how you would differentiate between the different contexts (because I can have several) in the same part if there already is "derivative parts"? What is the practical up-shot from this feature/function compared to having a derived part? Is it something that is going to morph into a new version of derivatives later on or is it a more dynamic WIP tool or...? Is it only for placement? (haven't had time to look into this)
Would it be possible to turn OFF the "context" function? That it doesn't reference another component at all, just copy the geometry and forgets where it came from? Because if there is a lot of switching positions, components and concepts (I do this all the time) the broken links pile up pretty quickly and since right clicking and choosing delete does not work (yet) because it is not an available option, I have to open the component in a new tab, delete the link there and then save it again. Not optimal.
And! Aaaaand! some sort of "freeze all components right where they are now"-function. I have so many "capture position"-icons in my timeline.... gaah! If I could delete all previous positions on all... really nice.
Whenever there is dependencies on such a granular level as individual points/edges/faces it would be REALLY nice if there was a good way of showing exactly what is connected to what, and have the ability to manage those connections with simple commands like "Delete" and "replace with".
My ramblings about "origins" in point 4 was a convoluted way of saying that I do not want to be bothered with "underlying requirements for the software to work" to get a reliable result. But since the in-depth explanations and me thinking a bit more I really do not see any more unanswered questions/thoughts about that except one statement:
If there are consequences of inaction in a choice (such as applying a joint or not) that can contribute to "unexpected behavior" (components moving around) there should be some indication between the outcomes so that I can see what could contribute to the unwanted result. Also good to reference an actual indicator in educational videos etc.