> P* const would indicate a pointer to a const P, wouldn't it?

No, that's `const P*`.  `P* const` means the pointer can't be reassigned, i.e. pretty much like a reference but with NULL as a legal value.