And if you look further
"Note: The IN and != operators use multiple queries behind the scenes.
For example, the IN operator executes a separate underlying datastore
query for every item in the list. The entities returned are a result
of the cross-product of all the underlying datastore queries and are
de-duplicated. A maximum of 30 datastore queries are allowed for any
single GQL query."
So thats how its implemented for IN, so the method you already use
(multiple queries) sounds the best there is at the moment.
(although at write time you could put both the username and email into
one Kind - simply marking used names - or you could even create a
single string String List property on your current UserAccount, and
put both email and user name on that, and just run the query on that.
But its not really going to save you much as will still need two final
queries even if you can express it in one gql query)
--
Barry