GATs are an essential part of Rust's long-term async/await story. It's not language-wankery, this is driven by actual real-world use cases. Rust's own stdlib would have benefited from this in many places had this feature existed years ago.
You mention generators, but a lot of people are clamoring for those as well, and I fully expect them to be exposed to end-users someday.