¿Por qué el compilador soporta las calificaciones de alcance redundante, y es legal?

Probé en dos compiladores, y me sorprendió ver que ambos apoyan lo siguientedefinición sin queja

class A {
  A();
};

A::A::A() {}
   ^^^

Tenga en cuenta que esto también es exitoso para los métodos, aunque se marca cuando la declaración está sobre-calificada.

Preguntas:

¿Es este un programa válido de C ++?Si es así, ¿para qué sirve o es simplemente un subproducto?

Detalle actualizado:

En caso de que la pregunta original no fuera clara o demasiado breve: tengo curiosidad por saber por qué se permiten calificaciones redundantes en eldefinición (énfasis también añadido arriba).

Clang an Apple GCC 4.2 + LLVM fueron los compiladores

Respuestas a la pregunta(1)

Su respuesta a la pregunta