const cast isn't meant to remove constness on a const object, it's there to remove constness on a const pointer or reference to non-const object.

And to further clarify, the reason the language even allows you to do this is only because certain third party libraries are broken and take non-const parameters even when they are treated as const. const_cast<> is the only way to create a non-const pointer from a const pointer in order to pass data into these broken libraries.

If people could be counted on to properly const-ify their input parameters, const_cast<> would have no reason to exist.