One of the things I like best about Hipchat is that a person who joins the team 5 years later can search back through the history of the chat room forever. Hipchat has acted as an accidental knowledge base for me so many times that eternally persistent chat is now a requirement for anything I recommend. It's possible Lync does this and the implementation I'm using today just isn't configured to be useful in this way. Also, the fact that you can't message Lync users who are not currently online is a big non-starter for me. I've never used Slack, so I can't compare it.
It may be relevant that I often work on remote teams. I can't just say aloud, "Hey, anybody know about foo?" In a Lync world I have to individually message one person at a time and await their response or open a chat with everyone which will go away almost immediately after the question is asked. And generally once people have said their no they close the window, the helpful response will not be viewed by most of the team.