I'm not sure the best way to do this. One way would be to introduce new methods that include quoting. For example, something like: selectQuoted() or something. This would not be able to allow the current usage of 'a.*', but could allow comma-delimited lists of column names. (You would need to split the column names, add the quotes, and put them back together inside the quoteName() methods.)
Another option would be to add a new argument that defaults to false. So something like select($columns, $autoQuote = false). Again, if you used something like 'a.*' for the columns, quoting could not be used, so I'm not sure if this would be good or not.
Maybe there are other options as well. Off the top of my head, adding new methods would seem to be the simplest. They could simply call the existing methods after the quoting has been added. So you would be able to do this:
$query->selectQuoted('
a.id', '
a.name', 'a.address');
instead of this:
$query->select($db->quoteName('
a.id'), $db->quoteName('
a.name'), $db->quoteName('a.address'));
Again, I don't think you would be able to do $query->selectQuoted('a.*'), the way you can now with select().
Mark