Unless the script is OP_RETURN, there's no way to provably know they're gone for good.
That's not correct.
Even if you used P2PK for an uncompressed public key that does not fulfill the known equation (unsure if it'll be accepted)
If you succeed in broadcasting a transaction which sends coins to an invalid public key, then those coins are provably lost, since the network will not accept a transaction which spends coins from an invalid public key.
or failed to push the public key to stack as said above, you can't know if there's another public key that once hashed gives the same RIPEMD-160.
In the transaction I linked to above, there is simply no RIPEMD-160 result to compare to. If you click on "Additional info" and then "Op" on the left hand side of the link, you'll see the following opcodes:
OP_DUP OP_HASH160 0 OP_EQUALVERIFY OP_CHECKSIG
Instead of using 0x14 and pushing the pubkeyhash, they have used 0x00 to push "0" to the stack. If they had used 0x14 and pushed a pubkeyhash of 0000000000000000000000000000000000000000, then that would be the equivalent of sending to the address 1111111111111111111114oLvT2, and could potentially be spent. Instead they have essentially sent coins to nowhere. There is no way to find a pubkeyhash of 0, since RIPEMD-160 always returns a 20 byte output, and so these coins are provably unspendable.