Personally I find I never need to use turbofish for collecting data.
I use collect() when either I need to return a regular collection (e.g. a Vec) rather than an Iterator, and otherwise only when I need to get a regular collection as a local (this one is increasingly rare).
In the first use case, I just to .collect() and let type inference take care of the rest.
The latter mostly used to happen before impl Trait became stable, and then only when I couldn’t chain methods on the Iterator any further e.g. because I needed to pass an owned collection of the iterated items.
So mostly I’m just wondering: What makes you use the turbofish when using .collect()?