Hello Davy, I came up with the same confusion as yours and after some tests I came up with the following :
1 - when you assign dates from the project module, you are defining the organization of the project (dates and sequence of tasks)
2 - when you define Assignees (they are res.users) and they will recevive notifications about the tasks (but are not necessarily the ones that will work on the task)
3 - when you assigne dates on the planning you are saying exactly when a resource (not a user) will work on a specific task and you get a link from the task to this planning allocation
4- therefore you can end up with two planning views one from the project app and one from the planning app that are not showing the same data
5- With the project module I found out that you can define a task T2 blocked by a task T1 but sill able to drag and drop T2 before T1; you will just have an arrow from right to left
6- in the same way you can define in the planning an allocation for a ressource on a T2 task before an allocation on a task T1
7 - As a conclusion, the system is far away from an integrated project planner , you can use it for the beauty of the interface keeping in my that you have to resolve all constraints manually, otherwise I would suggest to use a dedicated project planning software
Cheers
Maurice