Looks like the descendants query is the best shot. I'm getting about 80-90% success with it. Bigger states (more towns) are the ones having trouble.
Trying to retrieve lists of places using children.degree() or descendants can be a hit-or-miss affair. Oregon has over 2,500 towns. GeoPlanet Web Service is not designed to return long lists (>2000 results), so it's best to keep such requests focused to limit the number of results returned. One way to limit results is to use a .type filter to restrict the results to a single placetype. Another way to limit results is to use places with small areas (such as counties). You can make multiple requests to GeoPlanet and combine the results.
If you are trying to populate a database with information about a particular placetype, it might be better to download GeoPlanet Data (see
http://developer.yahoo.com/geo/geoplanet/data/ ) and extract information from the supplied TSV files. Note that GeoPlanet Data does not contain any geometry (centroid or bounding box) for places.
Eddie Babcock
Yahoo! Geo Technologies