Пока не нашел, но вот статья с конкретными примерами:
https://pragdave.me/blog/2017/07/13/decoupling-interface-and-implementation-in-elixir.htmlИ на примере этих примеров можно уже что-то сказать конкретное.
При такой архитектуре, в случае когда нужно отрефакторить в сервер или из сервера - модуль с логикой остается нетронутым. Т е не нужно переписывать тесты и т п. Т е при рефакторинге ты можешь напортачить с имплементацией GenServer, но логику что уже есть не сломаешь.
Это соответвует Open-Closed Principle из SOLID.