"I'm looking for $105k but your company is so awesome that I might just be willing to give up a bit in exchange for $AWESOME_PERK."
Good luck negotiating that unless you are in high demand. Also I don't quite follow your argument. The only disadvantage of disclosing salary could be the fact that the candidate is aware of how high they ca go in a negotiation. But if the job is well priced, that should not matter.
I personally like to know the range because I do not want to waste my time with low ballers or waste the hiring manager's time by expecting something that they cannot match.