Based on this comment from D103753.
We don't pretend to implement a "C++03 library"; no libc++ user should
ever be relying on the fact that e.g. `emplace_back` does NOT exist.
We support GCC only with `-std=c++11` and later.
We support Clang in `-std=c++03` mode, but Clang supports rvalue references,
defaulted member functions, NSDMIs, and variadic templates all as extensions
to C++03.
Conclusion: Several instances of _LIBCPP_CXX03_LANG are unnecessary.
However, it's still true that in `-std=c++03` mode we're not allowed to use
- `std::initializer_list`
- braces around member-initializers
- the `constexpr` or `noexcept` keywords
And I don't think we want to turn on user-visible move constructors;
e.g. today in `-std=c++03` mode,
std::vector<T> v(1);
auto w = std::move(v);
visibly calls T's copy ctor.
I think it would be reckless to change that, at least in this particular patch.