Two good points which come across - That the Basic language has evolved considerably since it was first invented nearly fifty years ago, and using only GOTO and IF-GOTO reveals a lot more about what goes on under the hood than block structured statements, DO-LOOP etc do.
Dijkstra was really arguing from one perspective; how to write code fluently, which was reliable, could be understood, debugged, maintained and improved by others. The perspective that a good "programmer" doesn't need to understand 'under the hood', only how to achieve what they want.
That's fine for most "software developers", and an ideal goal, but does have consequences on constrained systems like most microcontrollers are. Most developers don't understand what their code is only what their program does. Their solution to a program which "doesn't fit" is to add more memory, buy hardware that will run the program.
The "software engineer" and "embedded programmer" approach is usually to make the program fit what you have, and that often requires understanding what is happening under the hood.
In the Good Old Days (TM), and to some extent now, the teaching and learning approach was to understand the CPU and hardware, understand how CPU instructions worked and how Assembler programs achieved a task. Then to see how High Level Languages could be used which mapped onto that Assembler language. These days "software developers" often only have the experience of using a High Level Language. To some that's learning the "how" but not the "why".
There's no real right or wrong; an engineer may understand a Formula 1 car but not be a good driver of one, a good driver may not truly understand the car, but the best will arguably be a good driver who understands the car.
The PICAXE suits both "software developer" and "embedded programmer" in offering straight forward commands to interface with hardware and low level ( GOTO, IF-GOTO ) and high level ( IF-ELSE-ENDIF, DO-LOOP, SELECT-CASE ) control structures. PICAXE is usable by those who are beginning to learn programming and interfacing and have little prior experience and also by those with complicated algorithms and larger programs. They have limitations but so does everything eventually and that's often in itself a lesson which pure "software developers" only discover too late.