I resolved a few more outstanding issues with flup and decided to make a release. I went ahead and called it 1.0. And as I previously mentioned, I went ahead and removed the publisher and middleware modules.
If you've been following the Subversion repository for flup (which has been quiet due to my switching to Mercurial), there have only been 1 or 2 new fixes.
I also uploaded the tarball and 2.5 egg to the Cheese Shop. Further updates will also go to the Cheese Shop.
And on the subject of further updates, consider flup to be in maintenance mode - there won't be any more new development. Bug fixes and bug reports are still welcome, of course. (Though this has been the way I've run flup for quite a while now, so I'm just making a formal announcement. )
And as a bit of editorializing, did I ever mention how much I hate FastCGI? Around the time I first released flup, I had transitioned my apps from FastCGI to AJP, and I never missed FastCGI since. But much to my disappointment, the FastCGI module was the most popular... most likely due to ubiquitous & cheap shared hosting services (e.g. Dreamhost).
Oh well, I don't even use flup myself anymore. I've switched to ajp-wsgi...
I use Beaker and ajp-wsgi pretty extensively and I haven't run into any problems like you've described. The frameworks I use with the two are Pylons, Flannel, or sometimes no framework at all (e.g. an authentication middleware component that just requires sessions).
The issue could be with web.py or with mod_jk, as these are the 2 major differences between our configurations. (I use Apache 2.2's mod_proxy_ajp.) Though I don't see how mod_jk could really affect this.
Have you tried web.py + Beaker on another WSGI server? I'm a bit suspicious about the way session.save() is being called in web.py. And like you mentioned, the non-web.py example worked fine.