Can we bring this one back from the dead?
In this discussion and the various blog posts, the conversation tends to hinge on the cargo cult argument: "If I do my work the way engineers do their work I must be an engineer". In the words of Dr. Pauli, that's not even wrong.
If you were a Software Engineer in the common sense of "Engineer":
You'd have a graduate degree in Software Engineering.
You'd have passed a certification exam demonstrating mastery of the knowledge and tools of your profession.
It's likely you would have spent some internship time working as an unlicensed software engineer under a practicing mentor.
You'd have a professional certification and/or license to practice as a Software Engineer from the institution recognized by your government as the institution permitted to grant such certification.
You'd have a code of conduct/ethics which you'd agreed to abide by. This would quite likely include some legal liability.
You'd be committed to ongoing professional development.
Otherwise you're a Programmer unnecessarily burdened with a sadly pretentious title.
"Programmer" is a fine title with a long and celebrated history.
It also has the advantage of getting bigger as the qualifiers get shorter. A "Java Programmer" can only do one thing. A "Programmer" can be expected to work, and have worked, competently in any language, given a short time to figure the ideosyncracies if it's a new language.
When I was running an R&D shop there were three software development titles: Programmer, Senior Programmer, and The Senior Programmer (who did not want to be called "Software Development Manager"). Seniors had both design and mentoring skills, "The Senior" did some coding but mainly architecture and process management.
When it came time to reward people for good work I gave them money, not meaningless titles.