Por que as qualificações de escopo redundante são suportadas pelo compilador e isso é legal?

Eu testei em dois compiladores, e fiquei surpreso ao ver ambos suportar o seguintedefinição sem reclamação:

class A {
  A();
};

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

Observe que isso também é bem-sucedido para métodos, embora seja sinalizado quando a declaração é superqualificada.

Questões:

Este é um programa C ++ válido?Se sim, a que propósito serve - ou é apenas um subproduto?

Detalhe atualizado:

Caso a pergunta original não seja clara ou curta: estou curioso para saber por que são permitidas qualificações redundantes nodefinição (ênfase também adicionada acima).

Clang um GCC 4.2 + LLVM da Apple foram os compiladores

questionAnswers(1)

yourAnswerToTheQuestion