Why is there no latch in this circuit?
Synthesis ignores sensitivity lists and assumes they are correctly and fully written.

Your code with all four signals in the sensitivity list does not describe a latch (since an update on y would force an update on z by rerunning the process), so your code does not describe a latch.

Most synthesis tools will generate a warning in a log somewhere that mentions it assumes as full sensitivity list.