I like all styles except the one of "Purist" in that example. In that example, the Purist code is way too bloated and boilerplate (if it indeed has tons of subclasses just for such a tiny problem), and I dislike boilerplate.
I'm pretty sure they were all caricatures. The ascetic's code uses a Y-Combinator, which (as I learned earlier today on HN!) is overkill even if you program in a functional style (basically FP's answer to OO's AbstractSingletonBeanFactoryStrategy). The librarian's code isn't particularly bad, but if you've never heard of that function, you'll have to look it up. This makes the code a little less readable.
I think the point of the article isn't to compare these different styles, but to deliver a bigger message: Style isn't that important, just write code that works.
> ...FP's answer to OO's AbstractSingletonBeanFactoryStrategy
That does not really belong to OO. You would be unlikely to find an AbstractSingletonBeanFactoryStrategy in a Smalltalk project for example (even one under the control of a Purist.) You would find it in a JavaEE project, but even then it is not part the platform, it has more to do with convention that has built up around the platform (and the type of Purists it attracts.)