This query, for example, returns more than 10 results:
SELECT * WHERE { SERVICE wikibase:mwapi { bd:serviceParam wikibase:api "Search" . bd:serviceParam wikibase:endpoint "www.wikidata.org" . bd:serviceParam mwapi:srsearch "test" . bd:serviceParam mwapi:srlimit 10 . ?title wikibase:apiOutput mwapi:title . } } limit 50
I was expecting that srlimit would limit the results to the number given, since I only wanted the top 10 results.
It seems that, regardless of the value of srlimit, it fetches all pages of the results (presumably fetching srlimit each time).
I think it would make sense to only fetch all of the results when srlimit isn't used. If someone wants all the results, fetching them in smaller batches seems inefficient (and likely to cause timeouts). If they don't want all of the results, it's wasting time requesting information which isn't going to be used.