It is always interesting to observe that an abstraction is frequently equated to over-engineering.
Take the case of XHTML (why we go now to HTML5 is not related to this discussion), by using the XML syntax it made things simpler: it just relaxed the parsing requirements by adhering to simpler rules, with several benefits, from lower memory and CPU usage.
But it did not made things easy for authors, and it felt over-engineered especially because why it was made so wasn't communicated clearly.
You can say that RDF relaxed the syntactic requirements in exchanging data, through triples and URIs.
While "the other things on top" of RDF: RDFS, OWL, etc. (see the semantic web cake) are filling up towards the Semantic Web idea.
Now, the fact the the Semantic Web is perceived as over-engineered is another communication issue. And this is not simple issue, as we don't quite know where are going. We discover daily—as we publish and link new data—unforeseen possibilities.
All that we have are a set of strong principles—grounded in the proven Architecture of the WWW—which we try to follow almost religiously and this fact, those principles/axioms which do not look practical (considering the current problems, that can be solved ... simpler) are also creating this over-engineered feeling.
Writing the above I realised that maybe the specs we write, and the process behind them is over-engineered and this reflects onto how other people perceive the Semantic Web.