Здесь было задано несколько вопросов о том, почему вы не можете определять статические методы в интерфейсах, но ни один из них не решает основную несогласованность: почему вы можете определять статические поля и статические внутренние типы в интерфейсе, но не статические методы?
Статические внутренние типы, возможно, не являются справедливым сравнением, поскольку это всего лишь синтаксический сахар, который генерирует новый класс, но почему поля, а не методы?
Аргументом против статических методов в интерфейсах является то, что они нарушают стратегию разрешения виртуальных таблиц, используемую JVM, но разве это не должно применяться в равной степени к статическим полям, то есть компилятор может просто встроить его?
Я желаю согласованности, и Java должна либо не поддерживать статику любой формы в интерфейсе, либо быть согласованной и допускать их.