There's a difference between "conformantly" and "portably".
Your second quote points out that binding UTF-32 to wchar_t is not portable. Nobody disagrees with that. That binding is also a decision by the compiler vendor, and not usually something the user of the compiler (C++ programmer) can configure.
The documentation in the Unicode Standard has to cover anybody using or implementing the standard - that includes compiler vendors adding Unicode support to their compilers - and yes, they
could bind their wchar_t support to UFT-32 and still be conformant to the C/C++ standards.
However, I believe the original text passage you cite from the Unicode Standard does not recommend simply to bind UTF-32 to wchar_t.
Quote:
On the face of it, UTF-32 would seem to be the obvious choice ...
(emphasis added).
That clearly implies that, despite first appearances, some other choices would most likely be better, so there's no actual contradiction between the text snippet you quote from chapter 2 and best implementation practices.
I appreciate your careful reading of the standard, but my take is that this is just an introductory sentence to a longer discussion and isn't as problematic as it may appear.