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.