1. You need to recognize the opportunities exist in the first place.
2. You need a global controller that can aggregate and optimize for a global solution (and the global solution might not necessarily simply to maximize the aggregate throughput, but there might be other factors into account), which may involve some algorithmic design (in some cases, you need to design new algorithms).
3. You need to justify that global controller gives you a superior solution compared to locally greedy solution. As in this article, a global solution gives you about 3% improvement compared to the local controller, and the local controller algorithm is substantially easier to write.
Background: in my previous job at Meta, I wrote such a global control algorithm for controlling the rate of data going in and out each data center. It involved some really interesting algorithmic design.
Even if you have a perfect implementation of this, and you don't need to deploy new networks, etc, and you put in a lot of NRE to make this easy deploy... how much engineering effort is still needed to start squeezing 1-2% out of a wind farm?
The real difficulty lies in:
1) Noise in the on-turbine wind speed and direction measurements and/or robustly (see point #2) operating LIDAR or met masts in front of the farm to try to avoid said measurement noise.
2) Actually arriving at a robust, operational in real-world conditions, fully closed-loop control system. A commercial wind farm has to operate 24/7 for 25 years without a bunch of engineers and scientists babysitting it, which is what is likely to end up happening if the cool control system relies on offline simulation results, topographical data, and/or human-supervised calibration & tuning.
It's not all doom and gloom: Ongoing improvements in sensor price/quality will probably make these kind of global control systems more and more practically feasible in the future.
local maximizing presumably already deals with the effects from upstream turbines, global (also presumably) only adds consideration for downstream turbines
Local control, and no need for a global coordinator, might be so much simpler as to be worth losing some efficiency / not going into integration hell.
The utility might own wind turbines from different manufactures, but they are not in the same wind farm. I suppose there might be places where two wind farms border each other that you want different devices, but for the most part you can optimize each wind farm individually with no need to worry about manufactures.
Farms can have different makes and models. I also think that there is a lot of on board control.
Shipping is also rather expensive, so your are probably going with the nearest factory for everything. (each blade needs a semi with an oversize load permit, and "chase cars" both in front and behind with the right lights and signs)
Of course if a turbine fails in 5 years (I don't know what the warranty is, so I'm going to use 5 years) they might replace it with one from someone else, but that isn't common.
I don't know how much is onboard controls. However someone is feeding the weather instructions in, and when demand is low someone is telling a few to shut down. They also do remote monitoring for issues that maintenance needs to fix. That connection just needs an upgrade, along with some new software for the onboard controls and it can be done offboard. (this may not be easy, but compared to a turbine it is cheap)
At the extreme, I am familiar with farms that have been expanded over 25 years and have a huge variety of builds.
I am also aware of a number of farms that have at least 2 different sized turbines.
I'm reasonably sure that all wind turbines in my area come from Siemans. (they have a factory in my state, any other make would be shipped in from a considerable distance)