#6 sometimes you actually will want an A(A&) constructor... for example, if you have constructor overloaded with a greedy template argument.
#8 objects returned by value will also bind to an rvalue reference
#9 Remember in C++11 there's also new T{};
#10 isn't absolutely correct either, dynamic_cast can actually be used in some circumstances where static_cast or implicit casting could have been used.
struct A {
};
struct B: A {
};
int main() {
auto b = new B();
auto a = dynamic_cast<A*>(b); // fine
}