¿Por qué no se pueden usar juntas las clases de almacenamiento estático y de registro?

Al definir una variable de la siguiente manera:

static register int a1 = 0;

obtenemos el error:

error: multiple storage classes in declaration specifiers

¿Hay alguna razón fundamental para este error? ¿Por qué una variable no puede almacenarse en un registro y también inicializarse solo al inicio / primera llamada?Es posible adjuntar la clase de almacenamiento de registros a una variable global. <- editar: no es cierto

Respuestas a la pregunta(3)

Su respuesta a la pregunta