Sure its possible, just maybe not as easy as we would like. I was just going off from the category of the topic being GraphQL is why I chimed in.
GraphQL does support first and offset. You can get a subtype filter if you reverse the query or use cascade.
I have not crossed this bridge of getting a count because it is more trouble than it is worth at the moment. So my implementation right now just uses pagination until no more results are available at which time I know I have reached the end.
The OP was strictly about pagination. Since it has branched out to pagination with sub-filters the GraphQL way right now would to get a list of repo ids from the root repos with your filters. Get another list of repo ids from the tag root with your tag filters. Union these two sets together client side. Use this as this array of repo ids as the filter and then use first and offset to get pagination.