Por que posso criar uma tabela com PRIMARY KEY em uma coluna anulável?

O código a seguir cria uma tabela sem gerar erros:

CREATE TABLE test(
ID INTEGER NULL,
CONSTRAINT PK_test PRIMARY KEY(ID)
)

Note que não consigo inserir um NULL, como esperado:

INSERT INTO test
VALUES(1),(NULL)
ERROR:  null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null).
********** Error **********

ERROR: null value in column "id" violates not-null constraint
SQL state: 23502
Detail: Failing row contains (null).

Por que posso criar uma tabela com uma definição auto-contraditória? A coluna ID é declarada explicitamente como NULLable e implicitamente não é anulável, como parte da PRIMARY KEY. Isso faz sentido?

Edit: não seria melhor se este autocontraditório CREATE TABLE simplesmente falhasse ali mesmo?

questionAnswers(3)

yourAnswerToTheQuestion