Okay, I have a hack that seems to work based on my fooling around with the idea. It only a few source code changes but those changes are in SEC_getPermissionsHTML(), SEC_getPermissionValue(), COM_getPermSQL(), COM_topicList(), and of course submitstory(), storyeditor() and edittopic(). These are not the kinds of places you want just anyone going in and hacking. Did I mention that you also have to run a bit of SQL across all your topics? The cool thing though is those functions have changed so little over the last few versions that the hack seems to work in 1.4.0 and 1.4.1.
Basically, I massaged the two SEC_ functions to allow "member" and "anonymous" users to have "write only" access. The change to SEC_getPermissionsHTML adds WRITE checkboxes to the member and anonymous user permission when a flag is set. The change to SEC_getPermissionValue() provides an override flag for the "Force 1 to equal 3" part of the function. Changes to COM_getPermSQL involve turning ">= 2" into "in (2,3)" and allow the $access variable to equal 1. Most of the changes to the other functions involve setting the flags to trigger the above changes.
In practice, you need to set all the permissions in your current topics to 3 for those members and anonymous values which now are 2. Once you set a topic to 1, it shows up in the submission list but not in the menu block or any other topic list. If you set a topic to 2, it disappears from the list of topics on the submit page. Owner and group level permissions are untouched by this hack.
I've uploaded the file. EDIT: Here's a
link