Это не вопрос с черно-белым ответом. Тем не менее, по моему личному мнению, для интерфейса имеет смысл жить в том же пакете, что и классы, которые его реализуют (или как можно ближе). Таким образом, другие, кто использует ваш код, могут сделать вывод об интерфейсе и его предполагаемом использовании из структуры пакета.
Когда все интерфейсы находятся в папке «interface» в корневом каталоге 1 - эта папка может стать очень большой и ужасной, 2 - интерфейсы полностью отключены от всех связанных файлов, поэтому их сложнее перемещать как группу 3 - единственная подсказка о том, что делает интерфейс (без его фактического открытия или импорта, проверки его документов и членов), - это имя файла.