Забавный термин, на который случайно наткнулся в вики Haskell (я туда попал по запросу “cons in Haskell”, который оператор для вставки в начало). Сама статья — про недостатки синтаксического сахара и опасность его чрезмерного использования: нужно помнить много конструкций; иногда не знаешь, во что транслируется выражение с сахаром; хуже ошибки компилятора; тяжело переписывать код, когда он не укладывается в “сахарный” сценарий; сложнее писать инструменты типа линтеров; разработчики “подсаживаются” на сахар, и просят добавить еще.

Однако это только одна сторона медали, и на эту статью есть довольно выдержанный ответ, который указывает на специфичность некоторых моментов именно для конкретной реализации компилятора и вообще, надо с умом его использовать, для того, чтобы код был более читаемым, а не просто ради удобства.

На мой взгляд, основная проблема некоторый языков в этом плане — консистентность и единообразность. В Scala 2 коде, написанном в Haskell-стиле, сахар превращается в то, что тебе нужно помнить отличия всяких +:+, ++: и прочих (_*_). Кроме того, не хватает единого стиля, в Scala 3 с этим стало в целом получше. А вот в Kotlin проблема с сахаром в том, что тебе нужно выбрать тот самый вспомогательный метод из миллиона других, который подходит именно под этот конкретный случай. “Практично”, но иногда безсистемно. В идеале должен быть хороший, но минимальный “фундамент” языка с хорошими возможностями для расширения.

А вообще стоит почитать оригинальную статью от 2005 года, где синтаксическим героином называют… перегрузку функций.