Your number 6:
Receiver mistakenly thinks that they belong to the current window
"cycle" and process them while it shouldn't be done because they are
duplicate.
That isn't what happens. For example, TCP has a Sequence Number field in the TCP segment header. If the segment has already been received, the duplicate segment is ignored.
From RFC 793, Transmission Control Protocol:
Reliability:
The TCP must recover from data that is damaged, lost, duplicated, or
delivered out of order by the internet communication system. This is
achieved by assigning a sequence number to each octet transmitted, and
requiring a positive acknowledgment (ACK) from the receiving TCP. If
the ACK is not received within a timeout interval, the data is
retransmitted. At the receiver, the sequence numbers are used to
correctly order segments that may be received out of order and to
eliminate duplicates. Damage is handled by adding a checksum to each
segment transmitted, checking it at the receiver, and discarding
damaged segments.
As long as the TCPs continue to function properly and the internet
system does not become completely partitioned, no transmission errors
will affect the correct delivery of data. TCP recovers from internet
communication system errors.
Flow Control:
TCP provides a means for the receiver to govern the amount of data
sent by the sender. This is achieved by returning a "window" with
every ACK indicating a range of acceptable sequence numbers beyond the
last segment successfully received. The window indicates an allowed
number of octets that the sender may transmit before receiving further
permission.
-and-
2.6. Reliable Communication
A stream of data sent on a TCP connection is delivered reliably and in
order at the destination.
Transmission is made reliable via the use of sequence numbers and
acknowledgments. Conceptually, each octet of data is assigned a
sequence number. The sequence number of the first octet of data in a
segment is transmitted with that segment and is called the segment
sequence number. Segments also carry an acknowledgment number which
is the sequence number of the next expected data octet of
transmissions in the reverse direction. When the TCP transmits a
segment containing data, it puts a copy on a retransmission queue and
starts a timer; when the acknowledgment for that data is received, the
segment is deleted from the queue. If the acknowledgment is not
received before the timer runs out, the segment is retransmitted.
An acknowledgment by TCP does not guarantee that the data has been
delivered to the end user, but only that the receiving TCP has taken
the responsibility to do so.
To govern the flow of data between TCPs, a flow control mechanism is
employed. The receiving TCP reports a "window" to the sending TCP.
This window specifies the number of octets, starting with the
acknowledgment number, that the receiving TCP is currently prepared to
receive.
Also, see Section 3.3. Sequence Numbers.
Edit:
Based on the comments and discussion, it appears that you forget that you are asking about sliding windows, where the size of the window is adjusted to meet the network conditions. if the network conditions are so bad (you write, "extreme"), the window size will be very small. When it gets to the point of being so small that it is for a single segment, then there is no problem because any duplicate segments will be for a different window, and they will be dropped.