It is not dead, but I haven't seen much interest for it either.
Well I was thinking about switching from dovecot-lda to LMTP and use the extdata plugin to check whether the message should go through spamc (via extprograms filter extension). All that in sieve_before script
That proved problematic though. Sieve is unable to use pgsql as data source, so I needed to go for proxy which in turn needed to make dict socket world writable (out of curiosity, is there a way to run second dict service with different dictionaries?)
After some more testing I found out that I'm unable to come up with working dictionary definition - username_field passes username as one value (whereas I have user and domain parts in different tables.) Tried using the fields {} section but that seems unusable as well, because extdata uses priv/something pattern and fields section requires you to use $variable which is - I assume - taken from pattern like this: priv/something/$variable
(I may be mistaken here, as hard as I tried, I was unable to find any documentation on how that map {} definition should look like)
Anyway, I already have some scripts that convert sieve settings stored in database into .dovecot.sieve file so I'll take care of running spamc this way
Anyway, I quickly made a v0.4 version: http://hg.rename-it.nl/pigeonhole-0.4-sieve-extdata/
Thank you very much, sorry I won't use it in the end.