There is very little P2PK use in bitcoin. The most common legacy output type in Bitcoin is P2PKH, as in pay to public key hash. This isn't significantly different from SegWit P2WPKH. At any rate, the only real difference is when the public key is revealed: when receiving coins (P2PK) or when spending them (P2PKH).
Sorry I meant P2PKH outputs. Bad typo

.
If you spend one of them, then you must publish the public key. They are therefore safe until one of them is spent.
Once an address is used once, then all future coins held at that address could be stolen.
The problem is that a quantum computer can convert a public key into a private key.
I'm not sure what your quantum threat model is. These claims are all speculative and up in the air. There's a question out there of whether such speculative attack applies to simply a public key, or public key + signature, which changes the threat model a lot.
It is possible for a quantum computer to take a public key (point) and work out the corresponding private key.
Shor's algorithm can be tweaked slightly to do elliptic curves.
This assumes that quantum computers actually work and have the accuracy to do crypto breaking.
As I understand it, Armory watching only wallets generate all the public keys based on a root public key and the chain code.
A spending wallet has the root private key and the chaincode. It can do the same generation process, but gets the private keys.
You could use a quantum computer to break all of the public keys after generating them.
However, by breaking the root public key, you can convert a watch-only wallet into a full wallet, which would be just 1 break required.
If you reveal a private key + chaincode, you can compute only later key pairs.
Right, though a watching-only wallet has the first public key and the chain code.
A defense against this would be to encrypt the root public key and pre-generate all the addresses.
New wallet format for 0.97 comes with public data encryption.
It is intermediate security.
It would mean just the public key (and chaincode) to be encrypted.
The user would just need to enter their password to generate new addresses.
The aim is to have the similar security as before quantum, with a little increase in hassle (password required every few hundred addresses used)
Watching only wallet -> privacy if lost
Spending wallet -> coins if lost