When WinSCP or a script fails the exit code is 1 instead of 0. If the user wants to know how the script failed, they must grep the output or parse the XML log. Depending on the environment, this can be somewhat difficult. IMHO, it would be beneficial to have more error codes, so that user can immediately know why their script has failed.
Maybe three exit codes could be used: 0 for normal, 1 for SSH/SFTP related errors (network, protocol, etc), and 2 for script errors (bad command syntax and/or bad exit codes from "call"s). Something like that.