They could actually think you are indeed great but want to get you at the lowest possible price.
> Are all your coworkers and managers also going to be people they don't think are great but settled for anyway?
Extremely likely.
> Or is it that they're not very profitable and can't afford to pay for quality?
That one is 50/50, many companies, even those not very successful, can afford programmers just fine, but they want to get away with paying less.
> Do you want to work for someone who may not be in business much longer?
Of course not, this is why I am asking uncomfortable questions during the interview, like are they profitable, are their customers bound with longer-term contracts, do they expect sudden inflow of competition, are there any regulation changes on the horizon, and others.
I wouldn't call this shady, it's just basic business. If you want to buy a house, and you want to lower the price, you can't act all excited.
An employer-employee relationship lasts for years, perhaps many years, and requires the employee to act as the agent of the employer, repeatedly.
Would you accept this kind of thing if you can help it from a potential future spouse?
Come on.
They're welcome to try this stunt. They're also welcome to lose their best candidates who would have been most loyal after showing a lack of capacity for loyalty on day zero, and instead select for only those candidates who are equally disloyal in return.
I have been contracting for little over 8 years now and I can tell you this happens a lot. Likely, really a lot. Very often.
And then they moan that programmers are overpaid divas who can't achieve anything, while just yesterday their 20-year old HR girl refused yet another NASA level 40-50 year old guy who can practically solve half the tech problems of the company, because she couldn't relate to him in a semi-informal interview.
Yep. This happens. All the time.