In regards to your story of essentially the path not taken: in general when I create a version that either doesn't work or doesn't work as well as I wanted, I keep the file around (renamed usually). Sometimes, much later I figure out how to make it work or some part of it becomes the basis of another project. Unless I didn't spend much time on it, I don't like to waste effort. The PDF addition was kind of an example of that - I kept the file around, but then when I was prettifying things up to upload to github, I figured I would add the PDF code to my file and put it within #ifdef's in case someone would want it. And also, in case you haven't noticed, I provided many different versions of the search system - it's harder to maintain, but allows the user to pick the option they like the most. So, in your case, you never know if the paths not taken might someday be paths you will want to go down.
I'll check out pdfio, it looks interesting.