Por que os documentos do gcm recomendam a invalidação do registro na atualização do aplicativo?

Do GCMdocs:

Quando um aplicativo é atualizado, ele deve invalidar seu ID de registro existente, pois não é garantido que ele funcione com a nova versão. Como não há nenhum método de ciclo de vida chamado quando o aplicativo é atualizado, a melhor maneira de obter essa validação é armazenando a versão atual do aplicativo quando um ID de registro é armazenado. Em seguida, quando o aplicativo for iniciado, compare o valor armazenado com a versão atual do aplicativo. Se eles não corresponderem, invalide os dados armazenados e inicie o processo de registro novamente.

Quando os documentos afirmam que "não é garantido que funcione com a nova versão" é uma limitação do GCM ou estão especulando sobre possíveis mudanças no comportamento do meu aplicativo de versão para versão?

Do lado do aplicativo, posso mais ou menos garantir que versões sucessivas funcionem adequadamente com relação ao GCM e ao formato de mensagem específico do aplicativo que eu invisto. Ainda preciso me registrar novamente?

Em caso afirmativo, qual devo usar para detectar uma "nova versão": código da versão ou nome da versão? Meu entendimento é que estes são "forma livre" e o desenvolvedor do aplicativo os define para quaisquer valores que ele escolha. Então, e se eu colocar uma atualização de aplicativo na loja, mas não alterar versionName ou versionCode; Preciso me registrar novamente no GCM?

Parece que o GCMna realidade wants é para o aplicativo se registrar novamente toda vez que uma nova instalação for iniciada pela primeira vez (e cada vez que for lançada sucessivamente até que o registro seja concluído), independentemente dos valores em versionName e versionCode. Isso é uma afirmação precisa?

questionAnswers(2)

yourAnswerToTheQuestion