i use list fields (which now implemented using the GAE native list property and string list property) liberally.
in places where i wish i had a join, i tend to use the web2py syntax that does the subquery for me: item.user.name where item is a Row, with a field user that is a reference to the user table, and name is a field on the user. keep in mind that this does the query, just under the covers. cfh