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.