From my experience, naming your price works in your favor if you are aggressive. People having similar positions are paid at 20% difference all dependent on their negotiation skills. Also, companies usually don't have set budgets for positions. It's quite fluid depending on the person being recruited and their other offers and expectations. You need to make it work in your favor. If you send up leaving money on the table, it just shows you did not come prepared.
Besides, there's nothing wrong in getting what you asked for even if in another set of circumstances, with some amount of luck, you could have gotten more.
I would disagree with what you're saying about companies not having set budgets. They may have a range but it's certainly a set range. The larger the organization the more hard the range likely is due to the fact that the hiring manager doesn't even set the range, HR does based on salary comps.