What you describe about 'const' is just about const correctness. That's important but different than aliasing.
For example consider Slice::swap [1]. This does consider the possibility that the pointers alias, and correctly, because they might point at the same object.