Conversões Java - char, int

Em Java, o seguinte é permitido:

char c = 'A' + 1;

Aqui, c manterá o valor 'B'. Acima, primeiro a expressão é avaliada. Assim, 'A' é convertido em 65, a expressão inteira é avaliada em 66 e, em seguida, 66 é convertida em 'B', pois estamos armazenando o valor em um caractere.

A seguir, no entanto, ocorre um erro em tempo de compilação:

char c = 'A';
c = c + 1;

Qual é a explicação para como o Java vê as expressões de maneira diferente? A propósito, o seguinte também funciona bem:

char c = 'A';
c++;

questionAnswers(4)

yourAnswerToTheQuestion