It doesn't even need to be about a grudge or getting even. It's numbers.
My husband had a buddy who had this happen once. He took a job to do some piddly little work in a basement bathroom. The homeowner wanted the world but wasn't willing to pay much, but the buddy didn't have any work at the time, it was the middle of winter and he'd already laid off most of his crew--he needed to keep a couple guys active so they wouldn't look elsewhere for work. There was no profit in it for him but it would pay his guys for a few days while he kept looking for more work. He took the job.
His guys get started the next day and he gets a call from a realtor; they have an out of state client who is trying to sell a house in a ritzy neighborhood that wasn't winterized so pipes had burst all over the place and the toilets were shot. It's a total re-plumb. They're willing to pay a premium to re-plumb the house because they need it done quickly, they have an open house scheduled for the weekend. Not only can he pay his crew but he'll get good money in his own pocket as well. What do you think he does? Do you think he passes up the $10,000 job because he promised to do the piddly little job for peanuts? Nope, he puts off the little job for a week while he takes the big job. He fully intends to get back to the little job but the same realtor is impressed with his work and recommends him to some other clients. He's got good work rolling in, almost more work than he can handle, it's the middle of winter which is normally a very lean time for contractors her in PA. Somehow cranky cheapskate homeowner's no-profit job isn't even on the radar anymore. Had the contractor been making a profit on the little job it might have been worth his while to call back a couple more guys to work on it, but for no profit?
You talk about honor, but expecting someone to work for nothing isn't honorable, and it happens to contractors all the time.