In relational theory, a primary key is a table contraint. It specifies that the fields that make up the primary key are unique and not null and thus can be used to address every row in the table individually. This does not say anything about indexes, and conceptually they are unrelated.
In practice, every database I know of either creates an index automatically to enforce the constraint or considers a primary key to be a kind of index to begin with. Thus creating an index on a primary key would be waste in practice. MSSQL falls into the creates an index automatically camp,
It is possible that some database could have a special kind of index used for unique constraints that just indicates if a value exists already or not without containing a pointer to the actual row values. Such an index would optimize insert and update but do nothing for select. But I don't know of any database that does that.
Jay