AccountsService reads /etc/passwd directly. I have no idea why this is the case, but it completely breaks any networked setup, as session data cannot be loaded/stored. It also caches the data excessively, which may break ldap setups because the ldap connection is not yet there on service startup.
AccountsService should use the correct system functions to query the data via nsswitch. It should also try to load information about users every time data is requested.
/etc/passwd is read on purpose, because we only want to list the local users plus users that have logged in locally, and not the 10000+ users that are in your ldap directory.