I think the complete answer is more of a combination of the above.

-X (later --sort=extension) has been supported in Linux since at least FC3 and will sort based on extension. --group-directories-first was added more recently (maybe around FC8?). However, combining the two doesn't seem to work (at least on FC8).

The primary issue seems to be with the use of singular primary sort keys. See this mailing list discussion for some insight into it.