For me as a developer it makes perfect sense: top of the range is equal to company's budget for that position, and if they are not willing to give you top of the range salary then the changes are that some other, more skilled candidate will show up and take the job.
So, simply put: if they don't want to give you top of the range it means that they weren't impressed enough by you, and you should continue your job search until you find a company that is.