So long as there is at least one NOT NULL column on the table, then COUNT(*) should be as fast as COUNT(pk) - any RDBMS optimiser will recognise that.

Saying SELECT * "MUST NOT" be used may go unnecessarily too far. Although it is seldom needed, it can be useful to analyse or export table data.