That is not what I mean by "stock". If you buy a Samsung or HTC phone that is running the default, stock Samsung or HTC ROM, and not one that has been modified (i.e., broken) by your carrier, then you are going to have a good experience. Everything is going to work. You are going to get timely updates. Maybe not as fast as the Nexus, but you'll be taken care of.Not really.
The only stock Android phones are the Nexus lineup. The latest model is the Galaxy Nexus.
If you buy a phone that the carrier has modified, even if it's just simple rebranding, then life will suck. That simple rebranding means that when Samsung or HTC release an update, you have to wait for your carrier to get off their ass and apply their rebranding to the update. Mostly they won't, they'll skip a couple of updates, and then release their version much later than when they got it from the phone vendor. So you live with more bugs, and on top of those bugs, the carrier probably put something silly and frustrating into the ROM in addition to their branding.
Yeah there are purists who say that you should only run a pure Google Nexus phone, but I don't believe that. I have never had any problem with a stock Samsung or stock HTC phone.
That said you had one point--to get the unbroken phones you generally aren't going to get a subsidized phone. I always pay full rate for my phones, I never get a subsidized one, unless it's a nexus, just so I can avoid the carrier broken-ness. So I guess it's a matter of money, if you are poor and can't afford to buy a proper phone, and you need it subsidized, and you don't mind being locked into some contract, then buy an iPhone, and tell yourself you got a better phone, even though we know you didn't. You were just too poor to buy a better phone.