The C++ delete[] operator doesn't take a size parameter either. This is neither here nor there, and unrelated to the problem the blog post is talking about.
Yes it does. See overload 6 here
Only because they all call malloc() and free() under the covers. It was however an ABI break, and one the C++ community thought worth doing.
If you replace your malloc with jemalloc you can easily wire this up to sdallocx(). The C++ standard library obviously can't do this out of the box because it can't assume you are using jemalloc