Walt Yes, you are correct about that for adjacent only buff providers. It's not necessary for range ones (which usually have 100 range).
For those connected as a single group it would require the game to look and check; and then apply as if they are all in range to each other (this saves range checking).
However, having the game do the search and all is costly like the fill function. Rather than that it could be done when the parts are placed. The game would have to keep track of group lists of buffing providers. It will be memory intensive either way... I don't think there's a better solution. I imagine having the game to adjust during combat when buff providers get destroyed has a huge impact on performance.