clang was just being conservative and trying to prevent users from messing up the qualifier on the inner pointer type. Lifting this restriction enables using some of the libc++ templates with ObjC pointer arguments, which clang currently rejects.
rdar://79018677