Well, the command runs so
must be syntactically valid! ;)
In seriousness though, I think this is a doc bug. As well as the articles you've linked, "drop constraint ... drop index ..." appears in MOS too (see note 370633.1).
Interestingly, you can use this clause on non-primary/unique constraints. Though it does nothing:
create table foo (id varchar(26) not null, name varchar(50) not null);
alter table foo add constraint pk_foo primary key (id);
alter table foo add constraint ck_foo check (id > 0);
select index_name from user_indexes
where table_name = 'FOO';
INDEX_NAME
PK_FOO
alter table foo drop constraint ck_foo drop index;
select index_name from user_indexes
where table_name = 'FOO';
INDEX_NAME
PK_FOO
alter table foo drop constraint pk_foo drop index;
select index_name from user_indexes
where table_name = 'FOO';
no rows selected
But if you're worried about this not working in production "one day", I'd go with "drop primary|unique". Which also allows you to remove this without knowing the constraint name:
alter table foo add constraint pk_foo primary key (id);
select index_name from user_indexes
where table_name = 'FOO';
INDEX_NAME
PK_FOO
alter table foo drop primary key drop index;
select index_name from user_indexes
where table_name = 'FOO';
no rows selected