Thanks Pete, I will also check your interesting method.
The proposed solutions work.
In short, it is a matter of avoiding "shortcuts" and sliding routines and functions in a linear way, without jumps.
However, I confess, I am worried!
The solutions don't seem to solve what seems to be a compiler problem.
In fact, filed the problem of this post, the compilation went on BUT stops countless times showing the same error message "Incorrect number of arguments passed to function".
The error occurs on rather trivial single commands, related to the execution of functions (these, perhaps, I will have to review them considering what has been said before) but also on the simple command SWAP (inside a function)
In short... something has changed since version 1.6 and 2.0.1. (2.1 in the window).
The compiler now seems more attentive to the flow of instructions, as well as syntax, as is normal for us to be.
The problem - if there is, but I think so - is how the compiler treats the code associated with the functions.
Checking all the code inside the functions is not easy (there are many!) and above all it is not easy to understand how the compiler "reasons" now to avoid errors in the future.
Sure, I could continue with the 1.6 but it's not a good policy to ignore the updates and improvements.