The tight dependency between the installer backend and the UI makes it extremely time-consuming or even impossible to implement any kind of UI changes. This prevents re-organziing the component tree in a more usable way, which prevents users to easily find components what they need. Separating the backend and the UI would make it easier to implement UI changes, which would improve the overall UX.
Separate the backend data from the UI similarly to the model/view pattern. Change in the UI, for example changing the position of the component in the installation tree, should not depend on the backend model structure. Adding repos/components to the backend model should not set any limitations, how the UI is organised.