За 10 лет шарпенины я встречался, ну, может быть, раз 5 с ситуацией, когда имена классов разных библиотек совпадали (соотв. использовал using alias). Зачем такая малопрактичная хрень возведена аж в стандарт языка?? Или это тупое копирование идей из жабы, с которой C# был слизан чуть менее, чем полностью? На мой взгляд, куда практичнее было бы использовать некий "набор библиотек", подходящий для данного типа приложения (WinForms, WPF, Office add-in, etc), и указываемый в проекте, а не засоряющий мои листинги.
Конечно, есть ещё "программы одного файла", но опять же — никто не мешает компилеру иметь где-то в дефолтах список либ, которые нужно подключить (или указывать их в командной строке).
В общем, идея понятна — не засорять листинги тем, что весьма косвенно относится к алгоритму.
Что скажете?