Similar as with the scaling feature, for the benefit of system scientists (Commissioning) and operations we need to care about raw performance of (self-)calibration and imaging pipeline. As we are dealing with an exceptionally data-intensive domain, one of the main ways that we can improve performance (or unlock further performance improvements down the line) is to carefully engineer our pipelines for maximising the efficiency of our I/O - specifically reading and writing visibilities and images (the largest data items) from or to storage as rarely as we can get away with.
For self-calibration specifically, the theoretical optimum is to read visibilities only once per major loop or self-calibration iteration. At present, the situation seems to be that we are rather reading measured visibilities once per facet every major loop, as well as an entire read-write cycle for the visibility models. Furthermore, we are writing and re-writing visibilities between DP3 and WSClean. All of these are obvious inefficiencies that we should work towards resolving, even if they might not necessarily give us immediate returns on performance.