None of what you're talking about sounds like a comment on the ftp or sftp protocol. It sounds like concerns about the particular command-line client you're using. I think if you write something in perl, python or ruby and use a library for sftp or ftp you'll find that these sort of issues don't come up.