I would expect the as.data.frame methods to obey the global stringsAsFactors option. Many do, one doesn't (as.data.frame.table);
For most the issue is not applicable, e.g., as.data.frame.ordered will never have the opportunity to turn a string into a factor so need not be told what to do in such a case.
Ones that do obey the global option: matrix, array, character, list
One that does not: as.data.frame.table
This is a potential source of confusion.
Created attachment 2359 [details]
modify as.data.frame.table to use default.stringsAsFactors()
here is a patch