@antgonza When using a semi-metric (distance without triangle inequality), PCoA can produce negative eigenvalues (and in a few more cases, see \S 9.2.4 in numerical ecology (Legendre & Legendre 1998)).
`cogent`'s code takes their absolute value, I guess to deal with that, but I haven't found any reference that justifies that approach.
I propose that we either raise an error if that happens, or implement one of the correction methods.