Ответ 1
В соответствии со стандартом С++ (7 деклараций)
5 В простой декларации необязательный список init-declarator может быть опущены только при объявлении класса (раздел 9) или перечисления (7.2), то есть когда spec-specifier-seq содержит либо class-specifier, специфицированный спецификатор типа с ключом класса (9.1), или спецификатор перечисления....
Таким образом, этот код
int main() {
int; // well-formed
Magic; // well-formed
}
плохо сформировался.
Кроме того, формально эти неправильные декларации являются определениями в соответствии с абзацем № 2 раздела 3.1. Объявления и определения и, очевидно, как таковые не имеют смысла.