Семантически у вас в двух вариантах написаны совершенно разные вещи.
В первом случае в секции данных создаётся безымянная структура, ссылка на которую присваивается переменной p, а во втором случае записывается число в поле структуры p, автоматически размещаемой, т.е. для типичных архитектур находящейся на стеке.
На высоких уровнях оптимизации, конечно, компилятор догадается, что результат этих действий один и тот же, но формально это разные программы. По той же самой причине, по которой элементарные и агрегатные типы в языке Си различаются между собой по способу присваивания.