if the example input & output in the original feature request is not clear enough let me know and I will edit.
I agree that a list does not have row.names. The function is also intended for data.frames and data.tables however. When you transpose these objects, their variable names would become row.names, in which the transpose function does not foresee. Hence the need for the verbose as.data.table(t(dt), keep.rownames = T).
This could have been useful in this SO post -- instead of needing the helper function coefsplit to break apart the named result of coef(...), we could do transpose(as.list(coef(...)), keep.rownames = TRUE).
This comes at a sort of general thing that I run into a lot of needing to split the named result of a routine into separate columns because the names are important (most salient and consistent example being when I run table by group)