The hash collisions you mentioned probably got fixed after or because of these CCC congress talks:
https://events.ccc.de/congress/2011/Fahrplan/events/4680.en....
https://events.ccc.de/congress/2012/Fahrplan/events/5152.en....
The article talks about peculiar myths that I haven't heard before. And the first one "the worst case is terrible" is not even a myth if you're hashing function isn't well designed and you have a malicious data provider.
The worst case was revealed able to efficiently DOS pretty much any hashtable-based stack back in 2011[0] (practical attacks on real-world implementations, not theoretical work), following which most stacks added hash randomisation during 2012.
[0] https://events.ccc.de/congress/2011/Fahrplan/attachments/200...
You have a family of hash functions, one of which is picked randomly. In the family, each hash function is such that Pr(collision) ≤ Pr(randomly picking that hash function).
That way, for a sufficiently large family, it is virtually impossible to hit its worst case.