We have person account enabled in our org.
So our contacts are set to
Controlled by parent.
Where as the Account which is the parent of this contact for that user has edit, read and transfer access.
This should be impossible as we don't control contact access from anywhere.
On task Name goes as
whoid and whoid is always person contact id, hence the user is not able to change assigned to field, even if he has Account edit access.