FWIW, while I agree that having to declare all subs at the top was a bloody nuisance, "Call subfoo" is, IMO, way more readable, than just naming the sub. Especially when others need to read and understand your code.
Not really. While it can be used as a signal that the following symbol is a subroutine, it's mostly a waste of space. Its only syntactic purpose is to allow a function-style syntax when a value is not being returned. ie:
CALL OpenFile(filename) as opposed to
OpenFile filename.
More to the point: a SUB is really a new command. From the developer's standpoint, you're literally adding a new command to the language when adding a subroutine. In fact, most languages rely on this and don't have any internal commands, other than basic flow control. In C, for example, there's not even a PRINT statement. Instead, the printf() function is a library routine and not actually part of the language itself.
If it helps you in your own work, there's nothing particularly wrong with using CALL, but if you're working with other people, you'll probably find that it's not recommended. Microsoft still includes the CALL statement, but their documentation now says to use it only in specific circumstances, such as when an identifier starts with a character that is not a letter.