I'm not sure what you're trying to do, as it seems you're fetching a collection of EmployeeCarEntity which is part of an Employee entity, however that employeeEntity isn't returned.
So IMHO you should create an EntityCollection<EmployeeCarEntity>() instance and a filter, using: EmployeeCarFields.EmployeeId==3
and fetch that as the collection. Then the path has to be:
IPrefetchPath2 employeePrefetchPath = new PrefetchPath2((int)EntityType.EmployeeCarEntity);
employeePrefetchPath.Add(EmployeeCarEntity.PrefetchPathEmployeeUser);
However this doesn't fetch manager in any way, you're fetching EmployeeCar entities, not employees.
So I am lost in what you actually want to achieve, as what you showed doesn't (IMHO) match with what you described, so I don't know what to suggest to you as the code which does what you want.
Also, could you enable DQE tracing (see 'troubleshooting and debugging' to see which queries are executed?