Потому что в этом случае у нас есть приведение в левой части выражения присваивания, которое сообщает компилятору, что мы принудительно используем наш идентификатор, чтобы он действовал как ссылка не только для чтения на свое место в памяти, и поскольку мы сознательно "форсируя «поведение», компилятор доверяет нам и разрешает это присваивание.
В некоторых случаях это потенциально опасно, например, когда вы присваиваете const-идентификатор с буквальным значением, потому что это не стандартно, как компиляторы реализуют эту инициализацию,на самом деле некоторые компиляторы, кажется, заменяют вхождения идентификаторов литеральными значениями, а также раскрытием макросов, поэтому вам нужно очень внимательно следить за этой операцией.