Completing a project without a contract is begging to get shafted. It sets up an incentive for the client to demand extensive modifications and long-term support --- things you'd otherwise be charging for --- or even invites them to take your work and hand it to another contractor as a starting point.
Message board cynicism is a poor excuse for bad business practices.
They do at least offer you a leg to stand on when it comes to clients asking for constant new features without wanting to pay for them. You can refer to it to back up your refusal to do extra work and by the same token it sets a bare minimum standard for you to meet before the job is considered done.
I did some freelance without a contract once and because I didn't have an agreement in writing I didn't have much recourse to tell them there'd be a charge for additional services.
A contract will never be a quick and easy solution to stop people doing a runner but you can at least limit the damage caused with one.
Contracts are useful for spelling out the rights and responsibilities of each party so there are no misunderstandings later. But I agree with you, if the person you're contracting with doesn't want to pay you, you may well waste more than the contract is worth trying to get your money.
If your client ends up not using your work product, either because their business falters or because they reject your work, you stand a good chance of not getting paid --- contract or no contract. That's life in the big leagues.
If your client ends up using your work, your contract is going to end up plenty enforceable.
If your client ends up using your work and you don't have a contract, don't expect to get paid this year, and expect a painful obstacle course of unreasonable support demands. They'll pay you eventually, but since you've reduced the worst case outcome to "amount we agreed on" from "treble damages and site downtime", they have every incentive to drag things out.