そもそもバイナリモードとテキストモードとは何で生じたかというとサーバとクライアントが採用している改行コードが互いに異なることが原因なのである。逆に言えば、サーバとクライアントが同じ改行コードを用いていれば全てのファイルをバイナリモードで転送しても全く問題ない。より間違いのないように言うならば、アップロードするファイルの改行コードをローカルで編集しているときからリモートの改行コードと同じものにすれば、全てのファイルをバイナリモードで転送しても問題無い。親切なエディタは改行コードを変換してくれる機能を持ちあわせている。
例えばサーバがunix機だった場合、改行コードはLFである(つまりエスケープシーケンス\nで出力されるのはLine Feed、行を始める、である。)。これに対しクライアントがWindows機だった場合、改行コードはCR+LFである(つまりエスケープシーケンス\nで出力されるのはCarriage Return + Line Feed、行頭へカーソルを持ってきて行を始める、である。)。サーバとクライアントの改行コードは異なっている。したがってファイルごとにモードを指定してアップロードしなめればならない。
ここから先は憶測だが、今までのことに間違いがなければftpユーザは少なくともサーバの改行コードを知っていなければならない。ということは、モード自動判定ができるソフトはユーザーが設定すること無しにサーバの改行コードを判定しているということになるのかもしれない。言い換えれば、テキストモードの場合には、CRまたはLFまたはCR+LFを全てLFにするという方法ではサーバがunix機の場合はいいけど、サーバがWindows機の場合は問題ありだと思う(Windowsの改行コードはCR+LF)。