Annotations not shown in some other readers because we don't save appearance streams
PDF 2.0 requires annotations to be saved along with an appearance stream (a pre-generated visual representation). This was optional in PDF 1.7. Poppler doesn't write them and also doesn't claim (yet) to produce PDF 2.0, so it's fine from that perspective. But a consequence in practice is that some wide spread readers like PDF.js don't show our annotations.
To be more precise, poppler actually generates appearance streams quite well for a lot of annotations types, but it keeps them in memory and doesn't save them to the document.
This is related to