OK, I got it. On web2py level it is now a list of strings all the way. That makes sense of course as it simplifies the usage. Internally its '|' separated concatenation on RDBMS and list property on GAE, which also makes sense.
What confused me was the fact that if you use simple "string" instead of "list:string" with checkbox widget the internal representation on GAE is a list like string "['xxx','yyy','zzz']". I guess an extra sentence in Chapter 7 of the book (http://web2py.com/book/default/ chapter/07#Widgets) saying that checkboxes widget should be used with "list:string" (not "string") should solve the problem.