I would like to add that unless some other part of the program changes the value of the string, then this type of call is unnecessary. It would be just as well to code:
Search the forum and/or manual for “late binding” for more info.
As @lemster68 mentioned, it’s commonly used to call a routine using a string. It could also be used to call a routine from a module which is to be loaded later or even loaded dynamically during runtime – so if the mainMovements_R3 procedure didn’t exist yet the program check would fault when called directly but “%“mainMovments_R3”%;” would pass.