"no matter how much out of order a packet is, it is "always" accepted by TCP." is an impossible request.
Packets will be accepted if and only if the RX window can hold them.
Now, consider that a the SeqNo is 32 bits, and the RX window (if I remember right) can be as large as 2^30.
If I'm not too sleepy, 5897+2^32-15545 > 2^30, so it is above the maximum, no matter what. So the segment will be discarded (If it's in the future). If it's an old one... well, it's correctly trashed because it has been received already (otherwise the NextRxSeq would be less than 5897).
Summarising, OOO packets are put in the RX buffer if:
1) there's space, and
2) they're in the acceptable range
That's how TCP works...