Есть ли какая-то причина, почему стандарт выбрал этот подход?
Это, вероятно, потеряно в истории.Но, вероятно, типичный формат для IP: Port, используемый сегодня, не был установлен в это время (это было задолго до HTTP и синтаксиса URL), поэтому кодирование sockaddr_in с его 4-байтовым IP и 2-байтовым портом в виде последовательности из 6 чисел, разделенныхчерез запятую, вероятно, имел смысл.
Это кажется странным как с точки зрения эффективности, так и с точки зрения простоты отладки.
FTP - это текстовый протокол.Очевидно, что эффективность не была критерием проектирования, иначе все было бы сделано в двоичном формате.Наличие последовательности из 6 байтов вместо IP: порт подходит для отладки, если уровень, на котором выполняется отладка, - это код C, и вы эффективно работаете с 6-байтовой адресацией (4-байтовый IP, 2-байтовый порт) в формеsockaddr_in struct.