If you're not a developer, you should still learn how to code. At least showing that you're willing to learn goes a long way so you can help with even the little things, such as fixing pixels or checking in small bugs. Think of it another way: would you join a renewable energy startup if you didn't know some engineering (materials, chemistry, mechanical, electrical, et al) fundamentals? How do you think you would do if put into an interview?
I generally agree with this. Especially if you have plans to be a founder. Though there is an opportunity cost of learning anything, right? Would the time spent learning to code be better spent learning a different skill that would be more directly applicable to the job you are seeking? I think in some cases, yes.
Absolutely to all of the above. A developer's job is to determine what's actually wanted/needed, not what is exactly enumerated, especially in a startup. In addition, if a job needs done, a job needs done. A developer who can hop on a sales call, or do customer support when needed is invaluable in an startup environment.
Learning about these domains allows you to talk to people in them. That allows you to educate people outside of the development group on the specifics of the product and get valuable feedback from them. This allows you to make a better product and at the same time gives you a foundation for doing Biz Dev.
Design is a bit different, but yes - learn the basics of that too and treat designers and design work as development unless your business plan is cranking out logos and t-shirts.