> Engineers are required. Programmers are optional.
> To be an engineer, you have to be licensed.
No, if you want to work for the 'public good' (doing city works, verifying things that people will be using inside their body or their failure could kill someone) then you need to be licensed. An Electrical engineer does not have to be licensed.
> Engineers work for a living. Programmers do what they love to do.
> Engineers generally don't do that. Teenagers don't design bridges in their spare time and then decide to pursue civil engineering as a career. Engineers always think of their job as their profession, because that's all it has ever been.
Hell yes they do 
> Engineering is well-understood. Programmers have no idea what they're doing.
What in the hell? Why do you think businesses have massive R&D budgets? It's because engineering is uncertain, you never know something is going to work until you try it. If you aren't failing, you aren't trying. With both professions (or hobbies).
> Engineering is real. Programming is abstract.
To an extent. This is actually kind of a complicated one, when I sit down and do the PCB layout for something, it's nothing more than programming. It's laying out logical structures in a certain order that allow me to dump part of my brain out onto a computer screen.
Programming is real in that there is interaction with humans, you can have a theory, verify or nullify it, optimize it. The same abstract structures of engineering are there, but more often then not the target stays imaginary.
If I program something in OpenSCAD, then I print it, I was programming something real. The question is not in where it comes from, it's where it goes. The final state of the problem is where it lies, sometimes engineering is abstract, and sometimes programming is real.
EDIT: Just so I don't come off as a (huge) jerk, and so I have something nice to say (offset the bad with a good), I encourage the author (if present) to go out and try engineering. Break out of the programming shell and test your conceptions about the world, see if they turn into misconceptions or stay true.
I was going to say pretty much the same thing, as it turns out there is a 'professional' Data Processing exam as well but few programmers take it, just like few of the engineers designing tech have a PE certification. Out of all the engineers at Intel when I joined in the way back time, the only ones who had PE after their names were the ones doing certifications (UL, FCC, EMI, etc).
That said, programming shares a lot of characteristics with 'art.' I expect that a large number of programmers have no 'process' to go from requirements to running code, rather they sit down and start coding until it works.
Interestingly enough this bit me when getting my first performance review at Intel, I was charged with writing a driver for a new graphics chip and since the chip had a little RISC engine on it for doing things like bitblt I wrote a mini-assembler, compiler, and linker to compile graphics operations. My manager marked me down for 'sand bagging' and when I inquired what he meant he explained that he had observed me sitting around, reading usenet, and basically goofing off for three months and then I sat down and wrote all the software less than a month. He complained that rather than bullshit about how long it was going to take to write I should have just written it and used the other three months to do work. Of course what ensued was me trying to explain that for 3 months I was trying to figure out how it needed to be written and then once that was all known actually writing it was trivial.
What I took away from that was that HW engineering had great milestones for things like circuit design, PCB layout, first films, first boards, design verification, manufacturing verification, production. But software only had, uuhhhhh, blam here it is.
I related that story to a friend who introduced me to a sculpture artist. She had the same 'process' except she would look at a rock for a month and then one weekend chip off all the parts of the rock that weren't part of the sculpture, but she had to 'see' it first before she could start chipping. Art. Not engineering.
Still though, you are comparing your experience to the whole of all programmers. Engineering itself has the characteristics of 'art'. There is still an unknown aspect to designing and developing a product even if you use a schematic or have a sane workflow.
What you and the author are speaking of is some of the unconventional aspects of programming, which come along with the drastic growth the field is going through.