I'm not quite sure what you're proposing here; you seem to be getting unpopularity mixed up with off-topicness.
Self-answers are allowed ...
As far as clear unambiguous site policy goes, there's nothing wrong with self-answered questions. That's why you can't close a question for being self-answered. Close votes are meant to be cast according to site policy; if a question is of a type that the community has decided to be off-topic, then it should be closed.
... but that won't stop people downvoting them.
Unlike close votes, downvotes are for members of the community to use in whatever way they see fit. No meta policy or community consensus in the world is going to stop anyone from downvoting a post they want to downvote. Each user uses their upvotes and downvotes according to their own personal preference, not according to the will of the community as a whole. Some people might downvote every single Twilight question without for a moment disputing that Twilight is on-topic.
Another false premise on which your question is more or less based:
Self-answered questions meet with a lukewarm reception at best (particularly if one mentions that reception!).
Nope. Here are some examples of well-received self-answers, with question and answer score included (for a longer list, see this useful Data.SE query thanks to @amaranth):
Unfortunately, sometimes how a question is received will depend on who's posting it. (I know, I know: SE policy is "vote for the post, not the person". But once again, each user is free to use their upvotes and downvotes however the hell they want.) If you're a known rep maniac, people will be more likely to assume you just posted it to garner rep, and might downvote for that reason. This is why you and Valorum tend to be particularly hard hit by the Curse of the Downvoted Self-Answer. However, this isn't always the case - see the above examples posted by me during my rep-maniac period.
One last thing from your question that I should address:
Some users have suggested that the policy mentioned in our Meta might not be valid, since it was made too long ago.
Policies established by the community on meta are valid until they're overturned by new policies established by the community on meta. Saying "we last had this discussion 5 years ago, shall we reopen it" is fine; saying "we last had this discussion 5 years ago, so let's ignore the consensus we reached then as it's too long ago" is absolutely 100% wrong.