Como a função de membro const pode alterar os dados de um objeto?

Ainda outra pergunta sobreconst uso de palavras-chave em C ++ (eu sou iniciante em C ++, tentei encontrar uma resposta no SO - muitas respostas, mas não consegui encontrar a resposta).
Pergunta 1: na seguinte função de membro

template <class T>  
bool BinTree<T>::insert( Node<T>* & node, const T& val ) const  
{
    node = new Node<T>(val);
}

Eu sou capaz de alterar os dados de uma classe que são passados como referência. Que tal uma função membro serconst? É verdade que issoconst&nbsp;impede que os dados sejam alterados apenas explicitamente, mas permite alterá-los através de uma referência?
2. Você pode confirmar minha compreensão:

func( const Node<T>* const & node ) {...}

nesta assinatura de função, o 2ºconst&nbsp;significa ponteiro const e o primeiroconst&nbsp;significa const Node (então o nó é uma referência para const ponteiro para const Node)?