OK, I figured out where the conversationId parameter was coming from. I had the SeamRedirectFilter in my web.xml (from previous thrashing). When I remove it, the conversationId stuff goes away, but it also completely breaks my application. Now when I click on View Issue, I get a blank (i.e. new) issue, instead of the one I click on.
Some more data that might help people point me in the right direction: I am attempting to use this code on top of an existing application (stateless session EJBs, EJB3 persistence over Postgres, custom (albeit trivial) LoginModule). I am also using Facelets in the UI.
Removing the 's in faces-config makes the app work again (duh), but I still have my original problem. Logging shows me that update method is being called, and the issue has the right data, but it is simply not being committed back to the database.
Even if you don't have direct advice, could someone perhaps suggest some places in Seam or Myfaces where I might start poking around, to save me from reading thousands of lines of code?