Tagged memory architectures offer lots of opportunities for catching faults (which can also be sources of security issues).
However, such architectures throw up some thorny questions around how and when a collection of bits can be regarded as a valid pointer:
Interesting! By the way Rust specification is work in progress, but rustc Rust compiler includes Rust interpreter (for constexpr etc), and if I understood correctly, that interpreter also uses p-number. It is called AllocId there.