(Apologies if this is the wrong category, I'm unsure which one would be the correct one.)
The headersclean test should test private as well as public headers. We install private headers, and end-user apps may use them (without guarantees and what not). They should therefore undergo the same kind of testing.
Cross-usage in other modules is also a problem, e.g. webengine is under QT_NO_KEYWORDS, so it can't use any (private) header where Qt keywords appear. See https://codereview.qt-project.org/c/qt/qtbase/+/344800