R>Макросы позволяющие менять синтаксис языка не нужны. Они может и хороши в качестве игрушек для церебральных соитий, но в практическом смысле несут больше вреда, нежели пользы. Как и чистая функциональщина, например.
Я дико извиняюсь, но, например, async/await, yield return, foreach и using это всё макросы. И даже '.' (точка) это тоже макрос — её смысл радикально меняется в зависимости от того, какие сущности она разделяет. Просто создатели компилятора сделали эти макросы ковыряясь ручками в кишках компилятора. А могли бы за то же время сделать вменяемое API для макросов, и затем всё самое полезное просто "само" появилось бы в nuget.
То что каждый релиз C# в нём что-то улушчается, показывает что улучшать язык нужно. Но у команды авторов куда меньше ресурсов, фантазии, и опыта работы в разных предметных областях, по сравнению со всем миром, чтобы написать макросы для всех предметных областей и всех возможных фишек. А ещё их сдерживают огромные риски что вкорячат в язык что-то неудачное, и придётся потом все следующие 100 лет это тащить по соображениям обратной совместимости.
Быстрое развитие языка в строну удобства возможно только через macro api и усилия комьюнити. А авторам языка останется выбирать самые удачные изобретения, полировать до блеска и вносить в стандартную библиотеку. Примерно как они сделали с System.Text.Json (переосмыслив Newtonsoft.Json и uft8json), только с фичами языка.
А твой страх что "в практическом смысле больше вреда" — это просто указание что культура подключения языковых наворотов пока не сформирована. Но она не сложнее чем культура подключеням библиотек. Посмотреть, почитать, попробовать на тестовом проектике, подумать, полезно ли оно, и только потом подключать.