Lafiel The first part of your proposal can already be done just by using two different buffs, one to buff the buff providers and one to buff the other parts.
The second part of your proposal would lead to different buff values for different providers depending on the order in which the buffs happen to be applied. For example, say you have a part that gives a +100% buff to adjacent parts and is itself buffable by that +100%. If you have three of those parts in a row, the desired behavior would be that all three have +300% buff, but the actual result would be that some of the parts would have less than +300% depending on the arbitrary order in which the buffs were applied.