In my mind, a web designer takes a site from concept to visual, to the template form (HTML/CSS). Now, that has many different forms, especially based on the designer. Some attempt to keep standards alive, some use tables and deprecated tags, some have no clue what HTML is an just use a design view of a program (these are the people that annoy me most).
For example, the current site I am doing some freelance work for (Healthy Learning Paths - NOTE: this site will be transfering over to my new one sometime in the next week or so, after which point it won't help make my point) was originally designed by a fairly artistic person, with (from what I can tell) no knowledge of HTML. After all, the site was made in 2008 and it is using all tables, and almost no CSS. There are a ton of images and they are all images, not backgrounds. When I got this job I had to go through and redo all the previous work done to bring things up to standards and then remove the majority of the tables (except for where it made sense to have a table).
Hm, I can see how that is a little confusing. I think the point I was trying to make is that the developer is in charge of the code while a designer lets the code do its own thing (lets programs like dreamweaver add all the non-essential crap to the file), or the designer doesn't worry about how a site will look in different browsers, they make it for whatever browser they have handy and assume it will work in all the others. A developer tends to go through the hassle of doing all the checks and making sure they have a working product before they turn it loose on the world.
I categorize the roles a little differently than you do (as you can see from my post), but in general I believe you have all the pieces required there.
Don't worry here, I am the same way (I have actually spent the last few years working on graphic design (during which time I joined numerous artsy websites in an attempt to get help and guidance) and attempting to make nice looking artwork - mainly for website skins), and even with the amount of experience I have gained over the last few years most of the time I finish a layout (skin) and don't like it enough to even code it. On my most recent skin design period (for those of you who are lost click here and scroll towards the bottom of the page) I have spent easily 30 hours working on it and have just got to the HTML/CSS portion of my "design" process. Luckily the easy part is right at the other end of this (PHP/Databases YAY!).
Great debate so far everyone!