Hi Richard,
I've introduced tyVarsOfTypeAcc recently and the main reason was to get deterministic order (part of #4012) of free variables in places that require it, like abstracting type variables when floating out expressions. It does a bit more than tyVarsOfType, but it's algorithmically better (it avoids set union) and in the end it comes out about equal in terms of performance on GHC tests.
The reason for eta-expanding is performance, and I wrote a note [1] about it.
I've also run some isolated benchmarks [2] if you're interested.