So it drops, then returns.
No, that's not it.
The important part is "resets back to the minimum for a single block, after which it returns to its previous value".
There are plenty of such jumps - going between millions then one then millions over one block.
According to the code, the rule is that if the time of new block is over 20 minutes past the time of the previous block, then the difficulty can be set to one for this block and only this block.
What we are seeing on the graph is difficulty being permanently dropped, not just for one block, but for the whole next period, and then goes up slowly in steps of 2016. That is a completely different rule.