After putting go-ipfs, js-ipfs (cli, api server / browser) through the paces, the state of IPNS functionality seems to be:
GO-IPFS:
Keys: RSA, ED25519, no support for secp256k1
IPNS: working using ED25519, publish to DHT and visible from external nodes
JS-IPFS:
Keys: RSA, ED25519, secp256k1 (api only)
IPNS: locally functional only, no external DHT
publish outputs peerIDs:
RSA: starts with Qm
ED25519: starts with 12
secp256k1: starts with 16
Does this sound correct?