The biggest disadvantage is that PS queries cannot be used to perform DML(update insert detele) operations. It can only fetch data(Select). Further as the use of temp table was mentioned in one of the answers I will like to add - how many times our temp records have data in database arent they cleaned before our prog ends......so y will we use temp tables in a select query.
Many more recent App Engine programs clear out the tao tables at the beginning and leave the data in there at the end so that you can use it (until another program instance picks up those tables and uses them) to debug.
You are absolutely correct in your statement but leaving the temp table with data and clearing it before next use is not a good programming practice isint it. This is the reason I wrote the above thing.
The other limitation of PS query is that if the resultset of the query is too large then not all the data can be extracted into Excel or CSV file due to file size limitations.