Are you saying that in C a callee can cast a const pointer to non-const and write to it and that's sanctioned by the Standard?
void mutate(const int *x) {
*(int*)x = 5;
}
int main() {
int a;
mutate(&a); // ok
const int b;
mutate(&b); // undefined behaviour
}So then actually no - it's not guaranteed to be portable. That non-const location qualification of course means portable code cannot just cast const pointers to non-const.