Виктор, этот тот случай, когда ответ будет «не знаю».
Вы верно пишете и про мотивацию дизайнеров, и про проблему с последовательностью и привычкой. К сожалению, договориться тут не выйдет, потому что непонятно, как выбрать стандарт, с которым все согласятся. Допустим даже конкретный сервис внутри себя сойдётся на каком‑то варианте. Но соседнему‑то сервису с чего его принимать, особенно если до этого он последовательно использовал противоположный? Понимая это, и первый сервис не видит никакого выигрыша от унификации для себя.
Кстати, есть ещё вариант, который использует «Кодекс» ЧатаГПТ в ВС Коде: там Энтер отправляет сообщение, но если один раз нажать Альт+Энтер или Шифт+Энтер, то добавится строка, и после этого Энтер уже будет добавлять следующую строку, а отправлять сообщение будет только Комманд+Энтер. Кажется ужасно замороченным, но вот как пользователь я могу сказать, что этот вариант не так уж и плох.
Я бы поискал спасение в том, чтобы делать явным поведение поля. Скажем, постановить, что поле обязано быть однострочным (на вид), если Энтер отправляет его текст, и даже если текст перестаёт в него влезать, оно не растёт в высоту, как будто это input type="text". А как только человек жмёт Контроль+Энтер, появляется вторая строка, и всё поле начинает вести себя как textarea. Если же поле сразу поддерживает Энтер как перенос внутри, то оно обязано изначально быть в высоту хотя бы в две строки.
