Why can't we post to a community without joining it?
It'd be a trivial change to LJ::can_use_journal(...) to check the community table and see if the community is open, and if so, allow the post. (the check in ljprotocol.pl's postevent for the poster being banned from the community still happens, afterwards.)
Then we need to announce in lj_clients the change, so people can make their client have an "Other..." option or whatever.
First though, any objections or things I haven't thought of?