Yes, function pointers (or delegates in C# speak) can obfuscate the target of a method. But my assumption would be that I could look at wherever they are defined and figure out where they point. Whereas ALTER is resetting this connection, potentially in different places and at different parts of the program’s lifecycle. (For example, GO TO ALLDONE might take us to a different label depending on whether the program just started or if it’s been running for some time.)
But it’s true that every programming language gives us lots of tools we can use to shoot ourselves in the foot. 😊