Acesso ao membro protegido por meio de ponteiro de membro: é um hack?

Todos conhecemos membros especificadosprotected de uma classe base só pode ser acessada a partir de uma instância própria da classe derivada. Este é um recurso do Standard, e isso foi discutido no Stack Overflow várias vezes:

Não é possível acessar o membro protegido de outra instância do escopo do tipo derivado;Por que meu objeto não pode acessar membros protegidos de outro objeto definido na classe base comum?E outros.

Mas parece possível contornar essa restrição com ponteiros de membro, pois o usuário chtzme mostrou:

struct Base { protected: int value; };
struct Derived : Base
{
    void f(Base const& other)
    {
        //int n = other.value; // error: 'int Base::value' is protected within this context
        int n = other.*(&Derived::value); // ok??? why?
        (void) n;
    }
};

Demonstração ao vivo no coliru

Por que isso é possível, é um recurso desejado ou uma falha em algum lugar na implementação ou na redação do Padrão?

Dos comentários surgiu outra pergunta:E seDerived::f é chamado com um realBase, é um comportamento indefinido?

questionAnswers(4)

yourAnswerToTheQuestion