Disclaimer: I try to avoid writing so many words without any code, but in this case it seems necessary.
Not sure about some of your claims. In my experience, Prolog is a high-level language, you get more done with less code. And I don’t mean Perl-style code, on the contrary, code with clear intentions, even if you are not on the wizard level quite yet. So this should in theory make reading and writing code easier, not more difficult.
The most common mistake by far that I have observed in the wild is: a beginner trying to follow religiously a specific Prolog programming style that doesn’t yet fit their experience level. Examples include trying to use constraints where they are not necessary without understanding the implications, or trying to program predicates that are true relations even if this is not necessary for their use case, or trying to maintain “logical purity” when this is not necessary. (I have made all these mistakes too!)
Some of the easily available learning materials are indeed preachy, in the sense that they purposefully construct a narrative about what “good Prolog code” should look like. My best guess is, the authors are completely forgetting that while this style might be good for them, it doesn’t help a beginner pull themselves up to that level. On the contrary, it only perpetuates the myths that Prolog is a difficult language, that Prolog is a very different language, and so on.
A trick that I have learned to despise (and this is ubiquitous in the “Learn to Program” universe, not at all specific to Prolog) is providing “beautiful” solutions to hand-picked problems. This is very hard to avoid and certainly every person who has ever tried to teach programming has done that. I know I have done it, too. It is disingenuous at best and malicious at worse. We do it because it feels easier than telling a beginner, “listen up kid, this shit is hard, just start cracking and if you have the aptitude, in 10 years you will be as good as anyone who has been doing this for 10 years”.
Now, this one thing in particular:
Prolog is a very simple language; this is not the same as easy. I am not sure even what “easy” should mean in this context. Easy to write code without syntax errors? Easy to get a simple problem solved in a hurry? Easy to solve complex problems? Easy to write correct programs? Easy to write efficient programs?
It is definitely not easy to get to the “advanced beginner” stage in Prolog.