Нужно ли складывать enum, class в отдельные файлы всегда?
Один класс — один файл, а в классе можно разместить и enum и другой класс. На мой взгляд повышает структурированность кода.
Любое правило возводимое в абсолют может приносить больше вреда, чем пользы.
Более объективного, чем просто ИМХО, ждать не стоит.
Позиция такая же, почему не стоит хранить все файлы в одной папке — время на осмысливание и обработку важнее сэкономленных разбиений.
При этом если неким элементом будет пользоваться гарантированно ровно один другой элемент, есть смысл забросить их в один кусок кода.