You did not leave von Neumann there. Not "for" and "JMP", but rather "for" and "recursion". And recursion in a language that doesn't have mutable variables. And
- Making a Tour = implementing an algorithm
- Touring France = creating the program
- Using Feet = using loops
- Using Wheels = using recursion
The thing is not whether it's possible to implement the same algorithms, but whether reasoning about the individual building blocks of one kind of programming languages will be useful for other kinds.
With your "for" vs "JMP" you've stayed within the von Neumann architecture, there are languages that are built on , say, lambda calculus. And even though both are turing complete and may be used to implement the same algorithms and eventualy transform the same data to the same result, their building blocks are different.