Как разбить escript на несколько файлов и скомпилировать в один?

Не совсем, но направление такое:

Дело в том, что escript файлы могут подключать .beam файлы, как и обычные .erl файлы, для этого они должны лежать в той же директории или путь должен быть прописан ключом -pa path в шапке с параметрами. Таким образом мы можем использовать обычную для Erlang структуру проекта, разбивая его на сколько угодно модулей, с той лишь разницей, что точкой входа будет файл скрипта. Собрать потом всё это в один файл, видимо, можно с помощью escript:create(), собрав их в один архив как в доке (см в самом конце

http://erlang.org/doc/man/escript.html

), но это я уже не пробовал, да и, видимо, потеряется одна из прелестей скрипта - его нельзя будет вызывать просто как бинарник, а только передавать его имя параметром лаунчеру escript'у