I looked at the sorting code in database2.py, and it is always forcing the same secondary sort key if the entries in the requested sort column are the same. This apears to be the "path" data, which essentially gives you a sub-sort of the book title if the author is the same, or author if the title is the same, etc.
What I'd prefer to see is the sort function being allowed to return 0 when items are the same. Because python has a stable sort (one that keeps the current order when the sort term is found to be equal), this would let you choose your sub-sort by whatever column you had clicked previously. If you are comfortable editing source, this is as easy as editing the src/calibre/library/database2.py file, looking for the "def sort" function, commenting out the last 2 lines, and adding "return ans" to the end. The last 3 lines would then look like this:
Code:
#if ans != 0: return ans
#return cmp(self._data[x][11].lower(), self._data[y][11].lower())
return ans
With that done, I can get click series and then author to see a primary sort by author with a sub-sort by series, and then click title and then author to see author with a sub-sort by title, etc.