None of the validation errors are technically syntax errors but 400 *is* the most appropriate response code for them.
The spec is poorly worded there. (Ie if you take the syntax error wording at face value then there's no appropriate response code to use for any incorrect but syntactically well-formed requests)
The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated. If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, it SHOULD describe the reason for the refusal in the entity.
I don't think using 409 for field uniqueness would be a terrible idea, but I don't think it's necessarily more correct, or more useful.* What status code should we use if theres a uniqueness field validation error, plus other non-uniqueness field validation errors?
* Using 400 for all validation errors is consistent and obvious behavior (In what case would a client need to treat a uniqueness field validation error any differently to any other field validation error?)