Here’s the nut of the question. SharePoint’s Web Services fall into two main classes: those that read (generally Get* methods) and those that write. Others don’t really make sense unless you are authorized, like the Users and Groups Web Service.
In situations where you are allowing Anonymous Access, it makes perfect sense to be able to use the read functions, and I’ve solved that in my jQuery Library for SharePoint Web Services (SPServices), by not sending the SOAPAction in the RequestHeader. (This was not something I ever saw any documentation on, and I only recently figured out that it worked.)
But what about anonymous writes? You can enable that through the UI for specific lists, but how can you make it work with the Web Services, for instance the UpdateListItems method? It seems like the Web Services ought to “respect” the permissions settings across the board, but it doesn’t seem that simple.
If anyone reads this who has an "in" with the smarties over at Microsoft, I’ve love to know what the answer is. I’d really like to make it possible in SPServices to write to lists anonymously where the permissions allow it.