Confluence MembershipQuery, not respecting .with(SearchRestriction)?

Theory goes this would return users with a displayName, lastName or email starting with ‘dnName’ passed, but, we get the same results regardless (eg ‘Z’ still matches all users). Anyone played with this API, https://jira.atlassian.com/browse/CWD-3512 is a little dated, but seems syntactically correct?

	// https://jira.atlassian.com/browse/CWD-3512
	@GET
	@Path("/queryusers")
	@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
	@Produces(MediaType.APPLICATION_JSON)
	public Response queryLdap(@Context HttpServletRequest hsr, @QueryParam("group") String groupName, @QueryParam("dnChar") String dnChar, @QueryParam("start") int start, @QueryParam("size") int size) throws EntityException
	{
		List<UserSearchResult> jsonObjList = new ArrayList<>();
		
		final List<SearchRestriction> restrictionList = new ArrayList<>();
		restrictionList.add(new TermRestriction<>(UserTermKeys.DISPLAY_NAME, MatchMode.STARTS_WITH, ""+dnChar));
		restrictionList.add(new TermRestriction<>(UserTermKeys.LAST_NAME, MatchMode.STARTS_WITH, ""+dnChar));
		restrictionList.add(new TermRestriction<>(UserTermKeys.EMAIL, MatchMode.STARTS_WITH, ""+dnChar));
		
        MembershipQuery<User> userMembershipQuery = QueryBuilder.queryFor(User.class, EntityDescriptor.user())
            .with(Combine.anyOf(restrictionList))
			.childrenOf(EntityDescriptor.group())
            .withNames(groupName)	                
            .startingAt(start)
            .returningAtMost(size);	                
		 
		Iterable<User> results = fCrowd.search(userMembershipQuery);
		for (User aUser : results)
		{
			 UserSearchResult aResult=new UserSearchResult(aUser);
			 jsonObjList.add(aResult);
		}

		return Response.ok(jsonObjList).build();
	}

Any ideas? is the use of restrictions broken, or … ?