Почему не выполняется составление литературных заданий без приведения типов

У меня вопрос о литералах в C.

int a; //a is an integer that is assigned an integer literal 414 a = 414; float b; //b is a float that is assigned a float literal of 3.14 b = 3.14; struct point { int x,y; }; struct point b; //{5,6} is a compound literal that is assigned to a struture. b = {5,6}; //doesn't work. b = (struct point){5,6}; //works. 

Кажется, это не работает без приведения? Что является причиной этого?

    (struct point){5,6} в целом представляет собой составной литерал.

    C11 §6.5.2.5. Компонентные литералы

    Постфиксное выражение, состоящее из имени типа в скобках, за которым следует скопированный список инициализаторов, является сложным литералом.