The plot handles are freed when the plot is deleted. Therefore, it shouldn't matter at all if the arrays containing the data of the previous plots change, either before or after calling RefreshGraph. All that the RefreshGraph function does is to synchornize the visible portion of the graph to match the internal state of the graph. In other words, it erases previously deleted plots, and it shows new plots that had been added to the graph without being drawn (while ATTR_REFRESH_GRAPH is 0).
The purpose of the delayed draw parameter is to avoid the flickering that can happen when a plot is to be replaced by a different plot. By not drawing the graph when the plot is removed, you avoid briefly seeing the graph without the plot.
Luis