...Should a fashion designer be able to sew?
Traditional product design usually includes the whole process of developing and testing a full functional prototype of the product, from the ideation to the production ready stage.
This process involves all sorts of trades and every engineer, craftsman and test user involved in developing the prototype are in fact designers.
At the famous Bauhaus school of modern design, they must also have regarded the whole development of a product as part of the design process, as one of their main principles was that every design student was taught the crafts of production rather than just design theory.
Every web-designer today who can code a functional web application rather than "just" produce a mockup in PhotoShop is honoring this principle. But should a designer really have to learn markup and programming languages?
The answer is... (wait for it)
Well, it depends...
Functional or emotional design
First of all it depends on what you are designing. If you want to specialize in UI design you will most likely need a broad understanding of the platforms that the endproduct will be published on. User interfaces also tend to have many view states, depending on the users inputs. So being able to code a functional prototype, or at least understand how it is done, is without any doubt a plus for the UI designer.
People often get confused about the term web design because besides from the UI design the design process also often involves emotional or communicative design - a branch of the design trade that has little to do with functionality, but a lot to do with communicating values. This part of the design process does not usually require much coding, but a lot of knowledge about visual communication and traditional graphic design.
Teamwork, large and small teams
In larger teams, with highly specialized employes, the programming is usually not the designers domain. If you plan to work as a designer in a larger agency you will most likely be working close with developers who will program and mark up your design proposals. Your most important task will probably be to present and visualize solutions for the clients, as well as create visual guidelines for the developers. Often you will have to discus your ideas with the developers to decide wether your solution is within the estimates. But in time the teamwork will give you a good understanding of how to develop designs that will be easy to process for the rest of your team. Though I personally have a design degree, I actually work as a frontend developer in a medium sized agency and many of our designers rarely have to open a code editor.
Since the 90s all sorts of efforts have been made to develop GUIs for webdesigners. Adobes editor Dreamweaver came with drag 'n' drop features, and PhotoShop/ Fireworks/ illustrator would let you export "slices" of your graphics as HTML. Unfortunately the code produced by these applications were not very semantic and difficult to scale and maintain. Today there is a wide range of online sitebuilders as well as GUI plugins, for content management systems, with all sorts of options for layout and design. Though some designers might be able to produce good results with these tools, they can hardly be considered as professional solutions. The code quality simply isn't good enough.
If you want to design visual concepts that can add value to a brand or product you might not need much coding knowledge but rather develop an understanding of branding, marketing and the communicative and emotional values of colours types etc.