I would have to say there are a couple of factors I think pretty much suck. I agree that dive shops should be able to survive on classes. That said, I took as long as I did to get certified because I couldn't commit the time and money it used to take to get certified 15 years ago. So in that regard I think the "walmart approach" has benefited at least me. Without the shop I took my classes at hawking gear, I doubt they could have survived and they did nearly weekly trips by van to Mexico to dive. For shops that don't have such nice local options for diving, where are they supposed to make their money? People like me won't pay more for classes until we know better and, as is so often said here, we don't know what we don't know.
The markup on gear is a bit ridiculous, but considering the % total cost of gear versus most people's diving trips I see that as kind of a wash. For those that dive locally of course, it's an annoying expense that is a barrier to entry in the sport. I've got a lot of expensive hobbies and adding gear costs make it that much more difficult to start new ones, or continue participating if gear costs are continuous. (Not that I think diving gear needs replacing that often...)
I haven't had any real issue with shops bitching about where I got my gear and why didn't I buy with them. I've gotten some nasty looks and slightly inferior (but not bad) service when I mentioned I bought all my gear used, but nothing really bad. If a shop ever does that I will tell them immediately they just lost my business permanently and anyone else whom I can convince not to shop there.