The receiver needs to reveal it!

The only reason I know BlackHatCoiner's public key is because we considered opening a channel. There's no way to do keysend without revealing node ID.
The receiver needs to reveal their node id in an invoice as well. Also, it looks like c-lightning doesn't support blinded paths for BOLT 12 offers yet. Run the following command:
lightning-cli decode [any BOLT12 offer]You will see that your node id is encoded in the offer.