Of course the intent was not to just get someone in to work for free, but more like when you take a first meeting with a new accountant or similar, you may ask him lots of questions related to your situation, and he will answer you based on his knowledge and experience. Most will not charge for the first meeting, presumably under the assumption that providing the client with useful information only increase the chance of having the client pay for future services.
Similarly if you come work with me for a day, and I am impressed with your abilities, you can be rather sure I will hire you. If I am not impressed by your abilities, I am almost certain that you will have learned something from the experience (either about your own skills or the tech. we work with), so for the client I would say this is win/win.
It sounds like you and I actually agree for the most part. Both the hirer and the hiree have the same problem: hiring is almost like extracting War & Peace from a newspaper. Is it necessarily fair for me to turn somebody down for wanting me to do a "trial day"? Of course not. But I have to go on what I have to go on. Just like it's not fair for an employer to hire me using a cover letter, a resume, and a couple of hour-long interviews.
So if a company asks me to work for free for a day, should I draw the conclusion that they're really wanting to evaluate me well or that they're cheapskates who won't pay people for doing work? Just like you'd probably rather turn away a superstar than hire a dud, I'd rather turn down a kickass company than work for a crappy one. So I'm probably going to go with the latter.
Don't get me wrong, money isn't what I'm in this for either. But that doesn't mean I should let people take advantage of me.