Методы расширения - это не просто статический метод и не просто удобство синтаксиса, на самом деле это довольно мощный инструмент. Главное, что есть возможность переопределять разные методы, основываясь на различных экземплярах универсальных параметров. Это похоже на классы типов в Haskell, и, на самом деле, похоже, что они находятся в C # для поддержки монад C # (т.е. LINQ). Даже если отбросить синтаксис LINQ, я все еще не знаю способа реализации подобных интерфейсов в Java.
И я не думаю, что возможно реализовать их в Java из-за семантики стирания типов Java обобщенных параметров.