I did not write this comment about placement new specifically. It's just a thing that annoys me about the "learn a subset" idea. You still need to know at least enough about every feature to know whether it affects you. Placement new is perhaps not the best example there because it is relatively niche and self contained, true.
Using Linux effectively doesn't mean you need to learn its source code. You need to know about its features (and trade-off, etc).
You don't need to know a language implementation's (e.g. gcc/clang for C++) source code to use a language well either, do you? Obviously you don't; it's a fools errand if all you ever want is to use it effectively.
You need to know about features (and trade-off, etc), how they were designed in isolation, and more importantly how they were designed to fit/connect together.
IIRC the issue was that vector construct one object at a time but then access it as if it was part of an array which was never constructed
In newer C++, thankfully, this is no longer required.
Edit: found a committee paper discussing exactly such cases:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p053...
Obj x;
x.use(); // ok
mutate(x); // does this call placement new?
x.use(); // may have undefined behavior
std::launder(&x)->use(); // may be necessary
x.use(); // may still have undefined behavior