Must a deadlock necessarily occur if the four conditions exist?
If you have a set of processes that wait for each other in a circular way, than you have a deadlock in this particular moment. This means that there is no situation where the four conditions are satisfied and there is no deadlock.

It may happen that a process stops waiting, for example due to some timeout mechanism realized by the developer. This breaks the circular wait relationship and the system continues to work.

The confusion often comes from the fact that conditions 1-3 are prerequisites for condition 4:


Without mutual exclusion in the resource access, there is no reason for the processes to wait on anything, so the circle is never created.
Without hold and wait, you have either only outgoing or only incoming connections for all the nodes (processes) in the dependency structure. Given that, you cannot form a circle.
With preemption in place, you can always break the circle by taking a resource your are waiting for away from another process. Given that, you never end up in a waiting circle. 


This shows that conditions 1-3 are system design properties, while condition 4 is a run-time situation. There is programming language research that tries to ge rid of the three design conditions, so that condition 4 becomes impossible by default.