We're pretty much on Option #3 as you described them. We use SQL Projects to handle the code changes and they usually aren't too bad, but trying to do customized reporting or SSAS is definitely a challenge in that model. Doable, but not easy.
I'd like to hear more about the details behind how you've implemented Option #4, perhaps in a future article. I'm not quite sure I followed the common staging area concept completely.