Carl - couldn't agree wih you more!
I think the way to go is user-preferences, but it's not obvious to me at this stage, how to set things up so that individual communities have their own settings which are also per-user. Perhaps the package_id holds the answer - do communities have unique "package_id"s?
Either way, there is quite a bit of integration work to specify (?standardise) these types of preferences, and get calendar (?and other packages) to recognise the presence of the user-preferences package and adjust the UI accordingly.
Regarding calendar permissions - I am certain there is no UI/functionality to allow ordinary member creation of events. I'd have used it myself otherwise!
This sort of thing would be very nice, and I think it points to a need for better permissions management.
Getting a bit OT, but imagine how cool it would be for a community administrator to define a role, assign it any number of standard permissions (add calendar events, manage news articles, etc.) and then assign the role to specific users within the community. Maybe for v 3.0 ;)
<Raad>