The reason that you are permitted to use the "this" pointer with a static data member, even though the pointer is ignored, is so that you can write a statement such as
p->v = 42;
without having to know whether v is static.
Otherwise, you would have to figure out the type of the object to which P points, and then write
P_type::v = 42;