Does app engine automatically cache frequent queries?
I think that app engine does not cache anything for you.  While it could be that, internally, it caches some things for a split second, I don't think you should rely on that.
I think you will be charged the normal number of read operations for every entity you read from every query.
I seem to remember reading somewhere that google app engine automatically caches the results of very frequent queries into memory so that they are retrieved faster.  
Is this correct?
If so, is there still a charge for datastore reads on these queries?