This is a very good question. The initial optimal window size is calculated based on the bandwidth delay product as described in the lesson.
However, because network conditions are not static and continually change, the window size must also dynamically change to accommodate these changes. Even if the optimal window size is calculated and used, the receiver may still be overwhelmed by the amount of data that is being received during the TCP session due to additional information being sent to it on other TCP sessions for example. Or because traffic has suddenly increased on the network segment due to file transfers that have been initiated in the meantime. The result is that it may be losing information and asking repeatedly for segments to be resent. If this occurs, the receiver requests that the window size be made smaller. After several successful segment transfers the receiver may request an increase in window size to increase efficiency. This may be done and if successful, the window size is kept…
These changes can occur multiple times over the lifetime of a session, and this is why the window size must be something dynamic in order to optimise the efficiency of the transfer.
I hope this has been helpful!