What if you add a second scanning mode which scans in a spirals outward from the player till it finds enough build-ables and then sets the range right there? It would save performance at the cost of accuracy wouldn't it?
If the area to scan is huge it might be more performant to split the scan into several scans. I hardly notice the performance hit myself, but perhaps it's different if you have many more roboports than I use?