You're right, except I don't think making their list price public makes a whole lot of a difference. No one pays full price, it's just like a car dealership. So if a particular vendor has a higher price but a good product, you're probably still going to at least look at that product and get a custom quote. From there you decide if the product itself is a good match for you, and if it is then you can start working with the vendor to reduce the price.
I just got my first IT job about a year ago fresh out of college. One of my first projects was to research, recommend, buy, and implement a particular product. I did some research and ended up being convinced this certain vendor has the best product for our needs. Their list price on their website was $29,000, +25% for each additional CPU over one, +20% support per year. I then called them, had a couple web demos, and began exchanging phone calls with the sales rep. What we wanted came out to about $75,000 with a 5 year support contract. Within a couple weeks (hey, this was my first time so it took a while) I had talked him down ~$40,000 with a 5 year support contract. It was easy, it didn't take a lot of negotiating, and I think I could have got him down more if I really wanted.
My point is they will lower their prices without so much as you asking them to, and that is what they are counting on -- you get interested in the product, they sell it to you for less than list price, and you're a happy customer who hopefully has repeat business based on your positive experience. List price means very little.