Depends on what we mean by 'code'. I don't expect designers to understand javascript, php, java, .net or whatever.
I do expect someone who bills themselves as a web designer to understand the basic fundamentals of CSS, what works on various browsers, gradeful degradation strategies, etc. I don't really think you can do web design successfully without understanding them, and I've never met anyone who really understands them who didn't also actually code html/css from scratch, at least at some point in their career.
It's probably possible to just read about it without opening an editor, but probably far less effective.
And re: developers - getting some understanding about colors, shapes, fonts, sizing, etc, to understand why some decisions are reached will definitely give a new appreciation for good design, and can help in other projects in the future where perhaps a good designer isn't available. I've stolen quite a few tricks from some designers I've worked with, and as time goes by I get better and using those tricks together in concert to make stuff that doesn't suck too bad.