That might be true for some definition of "Not Productive", but some things which could-be/are termed "not productive" actually are productive because the metrics for deciding what is/isn't productive are different as applied to different people. A good example would be writing a bunch of simple "throw-away" computer code; it's never used for anything after it's gotten to its complete/correct state -- and yet it is a good method for teaching yourself a new programming language, and therefore productive.
Now, as it applies to votes, let us consider the "voting for someone who cannot win is a useless vote" argument you made.
In computer science there is a lot of inertia for C-like languages, and even though there are some serious deficiencies in the foundations of it there's a lot of people who have the idea that "if it doesn't look like C it isn't efficient" this is despite that one of the most un-C-like languages (Ada) is the language that the C++ standards are moving towards. It's doubly ironic that Ada addressed problems 30 years ago that are now the main "next big thing" in the software industry: parallelism; so, what does the industry base it's new "geared for parallelism" languages on? C, obviously. I mean it's stupid to base it on a language that has been around for 30 years, faced these problems, and come up with solutions -- no, we've got to get behind C/C++ because that's the only style that can win [become useful/popular].
See how stupid that argument sounds?
Votes ain’t code.
And I believe my simple summary stands.
This is NOT a “perception” thing.
It’s a reality thing.
You’re either helping to kick the clown out of office, or you’re doing something else.