Как вариант (почти на правах бреда) можно использовать юникодные символы из расширенного набора.
Например, во почти во всех шрифтах есть сиволы: ‹› они очень похоже на знаки < > но все же имеют отличное начертание:
Method‹int›(Method‹string, int›) // \u2039 \u2040
Method<int>(Method<string, int>) // знаки больше и меньше
в выражении:
when (Method‹int›(Method‹string, int›) > 0)
...
Файлы у нас и так в utf-8 хранятся так что проблем быть не должно. Ну, а для ввода прийдется биндить их на некоторые сочетания кнопок. Например, на Ctrl+< и Ctrl+>.
Минусы:
1. Нельзя записать исходный файл в ASCI или национальную кодировку (последнее компилятор немерле и так не поддерживает).
2. Визуально знаки отличимы не очень сильн, так что те кто не любит С++-ного решения будет опять же недовольны.
Еще варианты:
«» - ковычки "отечественные" (больше годятся для строк)
₍₎ - скобки сабскриптные (мелковато)
◄ ► (стрелки из псевдографики)
˂˃ - еще одни стрелки похожие на больше/меньше \u02C2 \u02C3 (в)
<> - знаки больше и меньше исползуемые в С++.