I definitely think this is a valid concern. The input query is not taken into account when scaling input size.
One approach you can use is to use GQL aliases to take a smaller number of bytes per collection check. In your run.gql, do:
{
....
cid: collectionId,
im: isMember,
}
You’ll likely still run into input size issues with larger numbers of cart lines though!