In the demo, I do not draw directly on a cairo surface. I add the annotation
to the page, update it accordingly while the pointer is pressed and ask
Poppler to render back the PDF. The upside is what you see is the actual
PDF modified interactively. The downside of this approach is a potential
performance penalty in documents that Poppler is slow to render.

If you already have Evince built with a standard jhbuild, then you have
everything to try this out with the following easy steps:

The next steps are: improve annotations in Evince, edit and move annotations,
add other annotation types, and polish.

All in all, Evince is a critical application for me; I consume a lot of PDF
documents and produce some. To annotate I have been using ezPDF Pro
for Android, convenient but non-free and I spend more time in front of a
desktop, where I also need to annotate. Mendeley's viewer
was close to my needs, but also non-free.
Scholiar (a kind of Xournal's fork) is good to annotate documents,
but it flattens the annotations in the PDF (I believe as a workaround
for the lack of proper support in Poppler's GLib frontend). So, I am
looking forward to another weekend.