Коллеги, я обнаружил, почитывая DevCPT, что атрибуты записей и процедур
ABSTRACT LIMITED EXTENDED
компилятор позволяет переопределить, как и прочие предопределенные имена типа BITS, LEN, INTEGER и т.п.

Однако Language Report однозначно относит их к непереопределимым ключевым словам:
5. Operators and delimiters are the special characters, character pairs, or reserved words listed below. The reserved words consist exclusively of capital letters and cannot be used as identifiers.

+	:=	ABSTRACT	EXTENSIBLE	POINTER
-	^	ARRAY	FOR	PROCEDURE
*	=	BEGIN	IF	RECORD
/	#	BY	IMPORT	REPEAT
~	<	CASE	IN	RETURN
&	>	CLOSE	IS	THEN
.	<=	CONST	LIMITED	TO
,	>=	DIV	LOOP	TYPE
;	..	DO	MOD	UNTIL
|	:	ELSE	MODULE	VAR
$		ELSIF	NIL	WHILE
(	)	EMPTY	OF	WITH
[	]	END	OR
{	}	EXIT	OUT

Я попробовал - действительно, позволяет
MODULE M;
CONST ABSTRACT = -1;
TYPE T = ABSTRACT(*err: identifier does not denote a type*) RECORD END;
END MM.

При этом NEW - не в списке из п. 5!

Что думаете? Это баг или фича?
Для "реализации" такой особенности в таблице символов введен отдельный режим объекта, а всего-то их существует 4 штуки - по одной для каждого атрибута.