Tip: If you want to allow public users to vote, set Allow Multiple Voting to Yes, otherwise the public user will only be able to vote once for each question.
Yes, I think it’s because Matrix only tracks the voting per session if you dont allow multiple voting. I don’t think it tracks it by IP address, which may also not always be desired as you might have multiple users from the same IP.
The way I’ve done it before is to set a cookie/local storage value on the users browser that I set on the user after they have voted, with JS, then check with JS on page load if they have that value and if they do, don’t load the voting page, load the results page instead.