I'm just one perspective on this, there are others on the thread. But this stuff is all I've been doing since 2005 and I'd make a case that I've gotten reasonably good at it, so I'll go to bat for my perspective here and say that the advice to charge prospects for scoping work is bad, and you should avoid it.
It stopped happening entirely once we started charging a token fee. We realized that if we could convince clients to pay for a spec, even if it's a small amount, we have basically "soft-closed" them, which makes the rest of the engagement easier because money has already exchanged hands and trust has been built. Indeed, in our CRM system we move such clients to "existing customer" category, because that's what they are, and we treat them as such. (It also gives us the opportunity to name-drop them when needed, e.g. "we have done business with X").
It does occasionally give clients pause, especially if they are, like I said, just shopping around, and need convincing. But we don't care too much about such clients anyway.