You are not misusing it — count is a const binding captured by that render's closure. Calling the setter schedules a re-render; it does not reassign the existing variable.
The next render creates a new count binding with the new value. Your log belongs to the old render, so it prints the old value forever.
If the next value depends on the previous one, use the updater form:
And if you need to react to the committed value, use an effect: