Only worth doing with brand new clients where I've not vetted them yet and there's no mutually established trust and respect.
For clients where I've worked with them for many years, these are just a waste of time. I know they'll pay me. They know that I'll deliver. I am careful to not agree any work that I won't be able to do. And they are very careful to not ask me to do work that they can't afford.
If they really can't pay me, then I know they've went bankrupt, so no amount of contracts will make my invoice recoverable. I accept that as the cost of doing freelancing.