The searchUsers() method of UserDirectoryService JavaDoc has this:
List searchUsers(String criteria,
Search all the users that match this criteria in id or email, first or last name, returning a subset of records within the record range given (sorted by sort name).
criteria - The search criteria.
first - The first record position to return.
last - The last record position to return.
A list (User) of all the aliases matching the criteria, within the record range given (sorted by sort name).
However the returned List is not limited to the range specified.
ie given this:
List users = UserDirectoryService.searchUsers("test", 1, 1);
then assuming test matches something, I should only get one record back, but if it matches more than one I get multiples.