Вы можете разделить файл функций на несколько файлов, но имейте в виду, что если вам нужно больше файлов, загрузка может быть даже медленнее, потому что вам нужно больше команд ввода-вывода для загрузки разных файлов.
Кроме того, вы разделяете файлы по функциональности. Если вы чувствуете, что все эти функции связаны друг с другом, храните их вместе в этом файле. Это не сильно замедлит ваш сценарий.
Если хотите, вы можете поместить функции в (статические) классы и использовать автозагрузчик для загрузки файла, но я не поддерживаю это решение. Я думаю, что статические классы - это просто повод, чтобы вывести функции (и переменные) из глобальной области видимости, а создание классов только для автоматической загрузки злоупотребляет функциональностью автозагрузки.
Конечно, если вы создаете более объектно-ориентированный скрипт, использование классов также имеет смысл, и их автоматическая загрузка может быть удобной.