Of course, doing what I wrote also makes the assumption that the person playing is using one of the top 10 (or whatever) starting words which may or may not be correct.
That aside, I started playing a 6 letter variant and, while I haven't done any sort of analysis with access to the word list, I did do a quick Word Hippo analysis of words with common letters, especially vowels, and while I'm sure my results aren't optimal they're probably pretty good.
ADDED: Which I think is probably not all that different from what your code is doing. I fed Word Hippo 4 or 5 letters and told it to come up with some common words.
But that still requires an assumption that a player has given some thought to good starting guesses.