Doing freelance work, what responsibility do you have, if any, to let a client know they are going in the wrong direction and wasting their money?
If you are working on a project that seems to be going no-where, but is still paying you well, would you continue to work and get paid? Do you have a responsibility to give a client your honest opinion about problems with their project, even if they probably won't want to hear it?
I would guess that this situation is relatively common for people who do freelance coding, and I am interested to hear how you guys have handled it.
This can be anything from "Client believes they want X but X just isn't a good idea." (not too uncommon in SEO) to "Client wants X and X is a great idea but they could get X implemented for a fifth of the price if they weren't using me."
People hire me because I'm trustworthy and give them the warm fuzzy feeling. Those, and my own conscience, are much more important to me than squeezing an extra couple thousand bucks off of a contract.
I'll also tell variants of this to clients when sizing up contracts. For instance, smart people who like me routinely ask me to do pedestrian PHP coding, because I'm reliable and they don't know how to find a reliable PHP code monkey. (Canonical project description: "We have a site built on Wordpress which needs a plugin that interfaces with $EXTERNAL_API. Can you build it?" Yes, I could, but I shouldn't.)
I typically refer them to someone who I believe to be reliable, who charges much less than I do. (Though he should raise his rates, since he's reliable, and reliable is worth a premium -- as evidenced by people willing to pay $X00 an hour for PHP coding to get someone who will answer emails in a fairly timely fashion.)