Let's see, he did work for his client, never got paid, but handed over the work anyway. That seems like fantastic customer service right there. :-)
If diluting the client's competitive advantage is harmful to the client, then wouldn't anyone who releases a free product with equivalent functionality be responsible for hurting the client? Is in unethical to, say, release Apache because it dilutes Microsoft IIS? That doesn't seem like a reasonable standard.
Now, if the client provided proprietary information to the contractor (wireless toothbrushes are going to be big next year!) and that information was somehow baked into the now-open code (automatically flag all startups building wireless toothbrushes and move them to the top of the pile!) that would be less than ethical. I see no indication that this happened in this case.