я больше про то почему с# так не разрешает делать, а котлин позволяет
Просто разные дизайны. Semicolon делает код немного чуть менее визуально приятным (и просто можно забывать его ставить), но зато решает все проблемы, которые могут возникать из-за парсинга переноса строк.
Как-то так сложилось, что раньше чаще тяготели языки к использованию semicolon, сейчас чаще видно отказ от них (но я не проводил статистику, так что могу ошибаться из-за субъективного восприятия)