This angers me, as it suggests the programmer wasting time for nothing is fine..
Also many companies live in the illusion people are supposed to be excited to work for them or even worse they think they're Google although most lack the brandname. They look at how Google hires and think "Google is successful", so we just copy them, which will make us successfull, too. Well, this is a guaranteed way to fail because Google can allow themselves to do this due to Sergey Brin & Larry Page who turned tech into value, which turned into prestige/brand. This reminds me of PG, who wrote in one of his essays: "Prestige is just fossilized inspiration. If you do anything well enough, you'll make it prestigious"
People place a lot of value on human to human interaction.
Since a long time I try to educate companies to at least pay a symbolic sum to the engineer, like 10-20 USD/hour.
The reason companies don't do this is because they think that if the programmer fails, paying 100 USD for "nothing" is a waste (x). Most don't value the positive reputation and word of mouth this will generate. They just assume that if you're rejected they will never meet you again and after all you "agreed" to do a free homework task, so you are not supposed to be pissed.
(x) Paying recruitment agencies five figures however feels okay because it is somewhat linked to the success of contributing bringing a new person in.