You need to track the user for a poll. Sessions don't work since private browsing enables duplicate votes. Tracking the IP can block users from the same network/wifi. Cookies get auto-sent and browser storage is only clientside. Really not many more options aside from making an account on a site and logging in. I find it a pretty reasonable solution actually.
Cookies fall short just the same as sessions. you're asking the user to pinkie promise they won't clear their cookies / modify them.
An account seems the most logical. You need to avoid duplicates ; it's not really about privacy here. You'll only make a tradeoff between accomplishing no duplicates and letting users do what they want.