I guess I just don't see this practice as unethical because if I look at the whole spectrum of unethical behaviors, this seems very minor to me. Does that make it excusable? Probably not. But to me this is just about acquiring a skill which I previously did not have. It's not about recognition or compensation.
But even still, I fail to see what my employers are doing wrong. You will be compensated for the skills you bring to the company and what you produce. And if you're middle aged with a family to support you could get a paid job there if you had the skills. If not, you could apply for the unpaid internship.
But nothing bars you from getting hired, so that's why I don't view it as an injustice. At the end of the day, its a choice, and if you didn't like the terms, you are perfectly free to go somewhere else.