Engineering is a mindset. Engineering is a more mathematical approach to the coding (e.g. thinking in terms of theorems and proofs, and being aware of what your fundamental assumptions are (and being able to challenge them)). Engineering is someone else being able to pick up where you left off if you get hit by a bus. Engineering is kicking the tires before you give that live demo. Engineering is beating your own code to within an inch of its life. Engineering is about divide and conquer. Engineering is referring to problems with the code as defects and not bugs (calling it a bug is distancing yourself from it, as though it crawled in there by itself; calling it a defect is taking responsibility).
Engineering is best in life. Engineering is crushing your defects, seeing them driven before you, and to hear the lamentations of the testing team (because they're bored because everything works perfectly).
Engineering is listening to someone talk about the wonders of TDD, Unit Testing and Automated Testing and thinking to yourself, "that's a nice start but you've got a long way to go kiddo".
====
To be a developer is to sit in a circle, giving each other Dutch rudders, and go on about how Agile you are.
====
I'll take one Engineer, or someone who is keen and teachable, over a dozen 'developers' any day of the week.
I think the point where we can meet is that it's easier to teach a good web designer+beginning programmer enough software engineering to be useful than it is to teach an expert developer browser quirks and design.
I think a big part of the reason hiring for the front end is difficult on top of the wide skillset is the discipline didn't even have a name three years ago. I spent years ('03-'06) trying to figure out a job categorization for myself that wouldn't have me doing graphic design or writing stored procedures (I can do both competently but not well). For a couple years, just the fact that I knew "Ajax" opened doors and it took quite a bit of work to wrangle through the various browser quirks but as tools advance the discipline--and people expand their skillset--a much wider set of people have the page scripting skills that were cutting edge in 2005. Similarly, the rise of the second level of javascript libraries (KVO, MVC, MVVM, Modules, etc) will allow more people to build more stable solutions and the general practice will be what's cutting edge today. I expect this second stage will make it easier for the back end developers to transition over, though I suspect the dedicated static language people will continue to have trouble.
Just saying.