I think i should be possible to implement a ripple edit system. When keyframing in animation, ripple edit allows to move one key and affect all subsequent ones. This idea might be possible to implement to create new space in the canvas. With ripple edit mode, moving one component drags also with it all the components that are downstream. One problem might be with invisible wires that often are used to split the definition in different parts. Maybe invisible wires are not affected by this feature?