Среди всех синтаксических сладостей, есть одна существенная разница между подходами Андерса Хейлсберга и VladD2:
Немерле это compile-time
C# v5+ это compile-time/runtime
Макросы и другая декларативная гимнастика Немерле не живёт в runtime, а только в момент компиляции. С другой стороны, C# 5+ это синтаксические деревья-лямбды разросшиеся от уровня expression версии C# 3.0 до statements и шире.
Различие очень напоминает разницу между C++ templates и C# generics. Преимущества и недостатки обоих подходов известны.
Важное преимущество runtime-метапрограммирования в том, что алгоритм можно "перекомпилировать" под странные машины.
LINQ умеет исполнять некоторое подмножество C# код как SQL. Четвёртая версия .NET будет разбирать LINQ-запросы по косточкам для параллельного исполнения. С пятой версией C# можно всерьёз браться за runtime-кросскомпиляцию, например шейдеров для 3D-ускорителей из кода C#.
Можно всего этого добиться без runtime-метапрограммирования, в Немерле сейчас? Вероятно да. Даже сейчас люди пытаются делать runtime-кросскомпиляцию из сырого IL. Но это очень ресурсоёмкое хакерство.
Возможно, в эту сторону стоит подумать "немерлетальцам"? Немерле-макросу и так доступно синтаксическое дерево, значит он может сконвертировать его в нечто вещественное а-ля Expression<T> -- какой-нибудь Statement<T>, Method<T> и модифицировать/прогонять его в runtime.